[Libreoffice-commits] core.git: extras/source include/svx svx/source svx/uiconfig svx/UIConfig_svx.mk

Szymon KÅ‚os eszkadev at gmail.com
Fri Jul 11 01:18:48 PDT 2014


 extras/source/glade/libreoffice-catalog.xml.in |    3 
 include/svx/fmresids.hrc                       |    2 
 svx/UIConfig_svx.mk                            |    1 
 svx/source/form/datanavi.cxx                   |  283 +++++++++++++------------
 svx/source/form/datanavi.src                   |   70 ------
 svx/source/inc/datanavi.hrc                    |    6 
 svx/source/inc/datanavi.hxx                    |   25 +-
 svx/uiconfig/ui/xformspage.ui                  |  113 +++++++++
 8 files changed, 299 insertions(+), 204 deletions(-)

New commits:
commit 713735fc89b9e0222d8b62d051153da6932b3ebd
Author: Szymon KÅ‚os <eszkadev at gmail.com>
Date:   Thu Jul 10 14:10:16 2014 +0200

    RID_SVX_XFORMS_TABPAGES conversion to .ui
    
    Change-Id: I0f3647e95b2150eb8753aa333eeb492fee76bd2a
    Reviewed-on: https://gerrit.libreoffice.org/10192
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/extras/source/glade/libreoffice-catalog.xml.in b/extras/source/glade/libreoffice-catalog.xml.in
index 04a311c..aaca675 100644
--- a/extras/source/glade/libreoffice-catalog.xml.in
+++ b/extras/source/glade/libreoffice-catalog.xml.in
@@ -752,5 +752,8 @@
     <glade-widget-class title="Statusbar" name="svxlo-StatusBar"
                         generic-name="Statusbar" parent="GtkStatusbar"
                         icon-name="widget-gtk-statusbar"/>
+    <glade-widget-class title="DataTreeListBox" name="svxlo-DataTreeListBox"
+                        generic-name="DataTreeListBox" parent="GtkTreeView"
+                        icon-name="widget-gtk-treeview"/>
   </glade-widget-classes>
 </glade-catalog>
diff --git a/include/svx/fmresids.hrc b/include/svx/fmresids.hrc
index bc040ae..5299c1c 100644
--- a/include/svx/fmresids.hrc
+++ b/include/svx/fmresids.hrc
@@ -26,6 +26,7 @@
 
 // ImageList-Id's -----------------------------------------------------------
 #define RID_SVXIMGLIST_FMEXPL                       (RID_FORMS_START + 0)
+#define RID_SVXIMGLIST_XFORMS_TBX                   (RID_FORMS_START + 1)
 
 // Image-Id's -----------------------------------------------------------
 #define RID_SVXIMG_FORM                             SID_FM_CONFIG
@@ -63,7 +64,6 @@
 #define RID_SVX_FMEXPLORER                          (RID_FORMS_START + 6)
 
 #define RID_SVXWIN_DATANAVIGATOR                    (RID_FORMS_START + 19)
-#define RID_SVX_XFORMS_TABPAGES                     (RID_FORMS_START + 20)
 
 // Toolbars ------------------------------------------------------------
 #define RID_SVXTBX_FORM_NAVIGATION                  (RID_FORMS_START +  1)
diff --git a/svx/UIConfig_svx.mk b/svx/UIConfig_svx.mk
index fdb41e9..1d9d266 100644
--- a/svx/UIConfig_svx.mk
+++ b/svx/UIConfig_svx.mk
@@ -56,6 +56,7 @@ $(eval $(call gb_UIConfig_add_uifiles,svx,\
 	svx/uiconfig/ui/sidebartextpanel \
 	svx/uiconfig/ui/textcontrolchardialog \
 	svx/uiconfig/ui/textcontrolparadialog \
+	svx/uiconfig/ui/xformspage \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/svx/source/form/datanavi.cxx b/svx/source/form/datanavi.cxx
index 31c46c3..0088a16 100644
--- a/svx/source/form/datanavi.cxx
+++ b/svx/source/form/datanavi.cxx
@@ -126,13 +126,9 @@ namespace svxform
 
     // class DataTreeListBox
 
-    DataTreeListBox::DataTreeListBox( XFormsPage* pPage, DataGroupType _eGroup, const ResId& rResId ) :
-
-        SvTreeListBox( pPage, rResId ),
-
-        m_pXFormsPage   ( pPage ),
-        m_eGroup        ( _eGroup )
+    DataTreeListBox::DataTreeListBox( Window* pParent, WinBits nBits ) :
 
+        SvTreeListBox( pParent, nBits )
     {
         EnableContextMenuHandling();
 
@@ -215,23 +211,23 @@ namespace svxform
     {
         PopupMenu* pMenu = new PopupMenu( SVX_RES( RID_MENU_DATANAVIGATOR ) );
         if ( DGTInstance == m_eGroup )
-            pMenu->RemoveItem( pMenu->GetItemPos( TBI_ITEM_ADD ) );
+            pMenu->RemoveItem( pMenu->GetItemPos( m_nAddId ) );
         else
         {
-            pMenu->RemoveItem( pMenu->GetItemPos( TBI_ITEM_ADD_ELEMENT ) );
-            pMenu->RemoveItem( pMenu->GetItemPos( TBI_ITEM_ADD_ATTRIBUTE ) );
+            pMenu->RemoveItem( pMenu->GetItemPos( m_nAddElementId ) );
+            pMenu->RemoveItem( pMenu->GetItemPos( m_nAddAttributeId ) );
 
             if ( DGTSubmission == m_eGroup )
             {
-                pMenu->SetItemText( TBI_ITEM_ADD, SVX_RESSTR( RID_STR_DATANAV_ADD_SUBMISSION ) );
-                pMenu->SetItemText( TBI_ITEM_EDIT, SVX_RESSTR( RID_STR_DATANAV_EDIT_SUBMISSION ) );
-                pMenu->SetItemText( TBI_ITEM_REMOVE, SVX_RESSTR( RID_STR_DATANAV_REMOVE_SUBMISSION ) );
+                pMenu->SetItemText( m_nAddId, SVX_RESSTR( RID_STR_DATANAV_ADD_SUBMISSION ) );
+                pMenu->SetItemText( m_nEditId, SVX_RESSTR( RID_STR_DATANAV_EDIT_SUBMISSION ) );
+                pMenu->SetItemText( m_nRemoveId, SVX_RESSTR( RID_STR_DATANAV_REMOVE_SUBMISSION ) );
             }
             else
             {
-                pMenu->SetItemText( TBI_ITEM_ADD, SVX_RESSTR( RID_STR_DATANAV_ADD_BINDING ) );
-                pMenu->SetItemText( TBI_ITEM_EDIT, SVX_RESSTR( RID_STR_DATANAV_EDIT_BINDING ) );
-                pMenu->SetItemText( TBI_ITEM_REMOVE, SVX_RESSTR( RID_STR_DATANAV_REMOVE_BINDING ) );
+                pMenu->SetItemText( m_nAddId, SVX_RESSTR( RID_STR_DATANAV_ADD_BINDING ) );
+                pMenu->SetItemText( m_nEditId, SVX_RESSTR( RID_STR_DATANAV_EDIT_BINDING ) );
+                pMenu->SetItemText( m_nRemoveId, SVX_RESSTR( RID_STR_DATANAV_REMOVE_BINDING ) );
             }
         }
         m_pXFormsPage->EnableMenuItems( pMenu );
@@ -252,6 +248,29 @@ namespace svxform
         }
     }
 
+    void DataTreeListBox::SetGroup(DataGroupType _eGroup)
+    {
+        m_eGroup = _eGroup;
+    }
+
+    void DataTreeListBox::SetXFormsPage(XFormsPage* _pPage)
+    {
+        m_pXFormsPage = _pPage;
+    }
+
+    void DataTreeListBox::SetToolBoxItemIds(sal_uInt16 _nAddId,
+                           sal_uInt16 _nAddElementId,
+                           sal_uInt16 _nAddAttributeId,
+                           sal_uInt16 _nEditId,
+                           sal_uInt16 _nRemoveId)
+    {
+        m_nAddId = _nAddId;
+        m_nAddElementId = _nAddElementId;
+        m_nAddAttributeId = _nAddAttributeId;
+        m_nEditId = _nEditId;
+        m_nRemoveId = _nRemoveId;
+    }
+
     void DataTreeListBox::DeleteAndClear()
     {
         sal_uIntPtr i, nCount = GetEntryCount();
@@ -268,65 +287,83 @@ namespace svxform
 
     // class XFormsPage
 
-    XFormsPage::XFormsPage( Window* pParent, DataNavigatorWindow* _pNaviWin, DataGroupType _eGroup ) :
+    extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeDataTreeListBox(Window *pParent, VclBuilder::stringmap &)
+    {
+        return new DataTreeListBox((XFormsPage*)pParent, WB_BORDER);
+    }
 
-        TabPage( pParent, SVX_RES( RID_SVX_XFORMS_TABPAGES ) ),
+    XFormsPage::XFormsPage( Window* pParent, DataNavigatorWindow* _pNaviWin, DataGroupType _eGroup ) :
 
-        m_aToolBox      ( this, SVX_RES( TB_ITEMS ) ),
-        m_aItemList     ( this, _eGroup, SVX_RES( LB_ITEMS ) ),
+        TabPage( pParent, "XFormsPage", "svx/ui/xformspage.ui" ),
         m_pNaviWin      ( _pNaviWin ),
         m_bHasModel     ( false ),
         m_eGroup        ( _eGroup ),
-        m_TbxImageList  ( SVX_RES( IL_TBX_BMPS ) ),
+        m_TbxImageList  ( SVX_RES( RID_SVXIMGLIST_XFORMS_TBX ) ),
         m_bLinkOnce     ( false )
 
     {
-        FreeResource();
+        get(m_pToolBox, "toolbar");
+        get(m_pItemList, "items");
+        Size aSize(LogicToPixel(Size(63, 100), MAP_APPFONT));
+        m_pItemList->set_width_request(aSize.Width());
+        m_pItemList->set_height_request(aSize.Height());
+
+        m_pItemList->SetGroup(_eGroup);
+        m_pItemList->SetXFormsPage( this );
+
+        m_nAddId = m_pToolBox->GetItemId("TBI_ITEM_ADD");
+        m_nAddElementId = m_pToolBox->GetItemId("TBI_ITEM_ADD_ELEMENT");
+        m_nAddAttributeId = m_pToolBox->GetItemId("TBI_ITEM_ADD_ATTRIBUTE");
+        m_nEditId = m_pToolBox->GetItemId("TBI_ITEM_EDIT");
+        m_nRemoveId = m_pToolBox->GetItemId("TBI_ITEM_REMOVE");
+
+        m_pItemList->SetToolBoxItemIds(m_nAddId, m_nAddElementId, m_nAddAttributeId, m_nEditId, m_nRemoveId);
 
         const ImageList& rImageList = m_TbxImageList;
-        m_aToolBox.SetItemImage( TBI_ITEM_ADD, rImageList.GetImage( IID_ITEM_ADD ) );
-        m_aToolBox.SetItemImage( TBI_ITEM_ADD_ELEMENT, rImageList.GetImage( IID_ITEM_ADD_ELEMENT ) );
-        m_aToolBox.SetItemImage( TBI_ITEM_ADD_ATTRIBUTE, rImageList.GetImage( IID_ITEM_ADD_ATTRIBUTE ) );
-        m_aToolBox.SetItemImage( TBI_ITEM_EDIT, rImageList.GetImage( IID_ITEM_EDIT ) );
-        m_aToolBox.SetItemImage( TBI_ITEM_REMOVE, rImageList.GetImage( IID_ITEM_REMOVE ) );
+        m_pToolBox->InsertSeparator(4,5);
+        m_pToolBox->SetItemImage( m_nAddId, rImageList.GetImage( IID_ITEM_ADD ) );
+        m_pToolBox->SetItemImage( m_nAddElementId, rImageList.GetImage( IID_ITEM_ADD_ELEMENT ) );
+        m_pToolBox->SetItemImage( m_nAddAttributeId, rImageList.GetImage( IID_ITEM_ADD_ATTRIBUTE ) );
+        m_pToolBox->SetItemImage( m_nEditId, rImageList.GetImage( IID_ITEM_EDIT ) );
+        m_pToolBox->SetItemImage( m_nRemoveId, rImageList.GetImage( IID_ITEM_REMOVE ) );
 
         if ( DGTInstance == m_eGroup )
-            m_aToolBox.RemoveItem( m_aToolBox.GetItemPos( TBI_ITEM_ADD ) );
+            m_pToolBox->RemoveItem( m_pToolBox->GetItemPos( m_nAddId ) );
         else
         {
-            m_aToolBox.RemoveItem( m_aToolBox.GetItemPos( TBI_ITEM_ADD_ELEMENT ) );
-            m_aToolBox.RemoveItem( m_aToolBox.GetItemPos( TBI_ITEM_ADD_ATTRIBUTE ) );
+            m_pToolBox->RemoveItem( m_pToolBox->GetItemPos( m_nAddElementId ) );
+            m_pToolBox->RemoveItem( m_pToolBox->GetItemPos( m_nAddAttributeId ) );
 
             if ( DGTSubmission == m_eGroup )
             {
-                m_aToolBox.SetItemText( TBI_ITEM_ADD, SVX_RESSTR( RID_STR_DATANAV_ADD_SUBMISSION ) );
-                m_aToolBox.SetItemText( TBI_ITEM_EDIT, SVX_RESSTR( RID_STR_DATANAV_EDIT_SUBMISSION ) );
-                m_aToolBox.SetItemText( TBI_ITEM_REMOVE, SVX_RESSTR( RID_STR_DATANAV_REMOVE_SUBMISSION ) );
+                m_pToolBox->SetItemText( m_nAddId, SVX_RESSTR( RID_STR_DATANAV_ADD_SUBMISSION ) );
+                m_pToolBox->SetItemText( m_nEditId, SVX_RESSTR( RID_STR_DATANAV_EDIT_SUBMISSION ) );
+                m_pToolBox->SetItemText( m_nRemoveId, SVX_RESSTR( RID_STR_DATANAV_REMOVE_SUBMISSION ) );
             }
             else
             {
-                m_aToolBox.SetItemText( TBI_ITEM_ADD, SVX_RESSTR( RID_STR_DATANAV_ADD_BINDING ) );
-                m_aToolBox.SetItemText( TBI_ITEM_EDIT, SVX_RESSTR( RID_STR_DATANAV_EDIT_BINDING ) );
-                m_aToolBox.SetItemText( TBI_ITEM_REMOVE, SVX_RESSTR( RID_STR_DATANAV_REMOVE_BINDING ) );
+                m_pToolBox->SetItemText( m_nAddId, SVX_RESSTR( RID_STR_DATANAV_ADD_BINDING ) );
+                m_pToolBox->SetItemText( m_nEditId, SVX_RESSTR( RID_STR_DATANAV_EDIT_BINDING ) );
+                m_pToolBox->SetItemText( m_nRemoveId, SVX_RESSTR( RID_STR_DATANAV_REMOVE_BINDING ) );
             }
         }
 
-        const Size aTbxSz( m_aToolBox.CalcWindowSizePixel() );
-        m_aToolBox.SetSizePixel( aTbxSz );
-        m_aToolBox.SetOutStyle( SvtMiscOptions().GetToolboxStyle() );
-        m_aToolBox.SetSelectHdl( LINK( this, XFormsPage, TbxSelectHdl ) );
-        Point aPos = m_aItemList.GetPosPixel();
+        const Size aTbxSz( m_pToolBox->CalcWindowSizePixel() );
+        m_pToolBox->SetSizePixel( aTbxSz );
+        m_pToolBox->SetOutStyle( SvtMiscOptions().GetToolboxStyle() );
+        m_pToolBox->SetSelectHdl( LINK( this, XFormsPage, TbxSelectHdl ) );
+        Point aPos = m_pItemList->GetPosPixel();
         aPos.Y() = aTbxSz.Height();
-        m_aItemList.SetPosPixel( aPos );
+        m_pItemList->SetPosPixel( aPos );
 
-        m_aItemList.SetSelectHdl( LINK( this, XFormsPage, ItemSelectHdl ) );
-        m_aItemList.SetNodeDefaultImages();
+        m_pItemList->SetSelectHdl( LINK( this, XFormsPage, ItemSelectHdl ) );
+        m_pItemList->SetNodeDefaultImages();
         WinBits nBits = WB_BORDER | WB_TABSTOP | WB_HIDESELECTION | WB_NOINITIALSELECTION;
         if ( DGTInstance == m_eGroup || DGTSubmission == m_eGroup )
             nBits |= WB_HASBUTTONS | WB_HASLINES | WB_HASLINESATROOT | WB_HASBUTTONSATROOT;
-        m_aItemList.SetStyle( m_aItemList.GetStyle() | nBits  );
-        m_aItemList.Show();
-        ItemSelectHdl( &m_aItemList );
+        m_pItemList->SetStyle( m_pItemList->GetStyle() | nBits  );
+        m_pItemList->Show();
+        ItemSelectHdl( m_pItemList );
     }
 
     XFormsPage::~XFormsPage()
@@ -335,7 +372,7 @@ namespace svxform
 
     IMPL_LINK_NOARG(XFormsPage, TbxSelectHdl)
     {
-        DoToolBoxAction( m_aToolBox.GetCurItemId() );
+        DoToolBoxAction( m_pToolBox->GetCurItemId() );
         return 0;
     }
 
@@ -382,7 +419,7 @@ namespace svxform
                     if ( !sName.isEmpty() )
                     {
                         ItemNode* pNode = new ItemNode( xChild );
-                        SvTreeListEntry* pEntry = m_aItemList.InsertEntry(
+                        SvTreeListEntry* pEntry = m_pItemList->InsertEntry(
                             sName, aExpImg, aCollImg, _pParent, false, TREELIST_APPEND, pNode );
                         if ( xChild->hasAttributes() )
                         {
@@ -397,7 +434,7 @@ namespace svxform
                                     pNode = new ItemNode( xAttr );
                                     OUString sAttrName =
                                         m_xUIHelper->getNodeDisplayName( xAttr, bShowDetails );
-                                    m_aItemList.InsertEntry(
+                                    m_pItemList->InsertEntry(
                                         sAttrName, aExpImg, aCollImg,
                                         pEntry, false, TREELIST_APPEND, pNode );
                                 }
@@ -421,11 +458,7 @@ namespace svxform
         bool bIsDocModified = false;
         m_pNaviWin->DisableNotify( true );
 
-        switch ( _nToolBoxID )
-        {
-        case TBI_ITEM_ADD:
-        case TBI_ITEM_ADD_ELEMENT:
-        case TBI_ITEM_ADD_ATTRIBUTE:
+        if(_nToolBoxID == m_nAddId || _nToolBoxID == m_nAddElementId || _nToolBoxID == m_nAddAttributeId)
         {
             bHandled = true;
             Reference< css::xforms::XModel > xModel( m_xUIHelper, UNO_QUERY );
@@ -442,7 +475,7 @@ namespace svxform
                         xSubmissions->insert( makeAny( xNewSubmission ) );
                         Reference< XPropertySet > xNewPropSet( xNewSubmission, UNO_QUERY );
                         SvTreeListEntry* pEntry = AddEntry( xNewPropSet );
-                        m_aItemList.Select( pEntry, true );
+                        m_pItemList->Select( pEntry, true );
                         bIsDocModified = true;
                     }
                     catch ( Exception& )
@@ -454,7 +487,7 @@ namespace svxform
             else
             {
                 DataItemType eType = DITElement;
-                SvTreeListEntry* pEntry = m_aItemList.FirstSelected();
+                SvTreeListEntry* pEntry = m_pItemList->FirstSelected();
                 ItemNode* pNode = NULL;
                 Reference< css::xml::dom::XNode > xParentNode;
                 Reference< XPropertySet > xNewBinding;
@@ -474,7 +507,7 @@ namespace svxform
                     DBG_ASSERT( pParentNode, "XFormsPage::DoToolBoxAction(): no parent node" );
                     xParentNode = pParentNode->m_xNode;
                     Reference< css::xml::dom::XNode > xNewNode;
-                    if ( TBI_ITEM_ADD_ELEMENT == _nToolBoxID )
+                    if ( m_nAddElementId == _nToolBoxID )
                     {
                         try
                         {
@@ -524,7 +557,7 @@ namespace svxform
                         if ( xNewNode.is() )
                              xPNode = xNewNode->getParentNode();
                         // attributes don't have parents in the DOM model
-                        DBG_ASSERT( TBI_ITEM_ADD_ATTRIBUTE == _nToolBoxID
+                        DBG_ASSERT( m_nAddAttributeId == _nToolBoxID
                                     || xPNode.is(), "XFormsPage::DoToolboxAction(): node not added" );
                     }
                     catch ( Exception& )
@@ -568,8 +601,8 @@ namespace svxform
                     if ( RET_OK == nReturn )
                     {
                         SvTreeListEntry* pNewEntry = AddEntry( pNode, bIsElement );
-                        m_aItemList.MakeVisible( pNewEntry );
-                        m_aItemList.Select( pNewEntry, true );
+                        m_pItemList->MakeVisible( pNewEntry );
+                        m_pItemList->Select( pNewEntry, true );
                         bIsDocModified = true;
                     }
                     else
@@ -595,7 +628,7 @@ namespace svxform
                     if ( RET_OK == nReturn )
                     {
                         SvTreeListEntry* pNewEntry = AddEntry( xNewBinding );
-                        m_aItemList.Select( pNewEntry, true );
+                        m_pItemList->Select( pNewEntry, true );
                         bIsDocModified = true;
                     }
                     else
@@ -614,16 +647,14 @@ namespace svxform
                 }
             }
         }
-        break;
-
-        case TBI_ITEM_EDIT:
+        else if(_nToolBoxID == m_nEditId)
         {
             bHandled = true;
-            SvTreeListEntry* pEntry = m_aItemList.FirstSelected();
+            SvTreeListEntry* pEntry = m_pItemList->FirstSelected();
             if ( pEntry )
             {
-                if ( DGTSubmission == m_eGroup && m_aItemList.GetParent( pEntry ) )
-                    pEntry = m_aItemList.GetParent( pEntry );
+                if ( DGTSubmission == m_eGroup && m_pItemList->GetParent( pEntry ) )
+                    pEntry = m_pItemList->GetParent( pEntry );
                 ItemNode* pNode = static_cast< ItemNode* >( pEntry->GetUserData() );
                 if ( DGTInstance == m_eGroup || DGTBinding == m_eGroup )
                 {
@@ -694,7 +725,7 @@ namespace svxform
                             }
                         }
 
-                        m_aItemList.SetEntryText( pEntry, sNewName );
+                        m_pItemList->SetEntryText( pEntry, sNewName );
                         bIsDocModified = true;
                     }
                 }
@@ -710,9 +741,7 @@ namespace svxform
                 }
             }
         }
-        break;
-
-        case TBI_ITEM_REMOVE:
+        else if(_nToolBoxID == m_nRemoveId)
         {
             bHandled = true;
             if ( DGTInstance == m_eGroup && !m_sInstanceURL.isEmpty() )
@@ -723,17 +752,13 @@ namespace svxform
             }
             bIsDocModified = RemoveEntry();
         }
-        break;
-
-        case MID_INSERT_CONTROL:
+        else if(_nToolBoxID == MID_INSERT_CONTROL)
         {
             OSL_FAIL( "XFormsPage::DoToolboxAction: MID_INSERT_CONTROL not implemented, yet!" );
         }
-        break;
-
-        default:
+        else
+        {
             OSL_FAIL( "XFormsPage::DoToolboxAction: unknown ID!" );
-            break;
         }
 
         m_pNaviWin->DisableNotify( false );
@@ -746,7 +771,7 @@ namespace svxform
 
     SvTreeListEntry* XFormsPage::AddEntry( ItemNode* _pNewNode, bool _bIsElement )
     {
-        SvTreeListEntry* pParent = m_aItemList.FirstSelected();
+        SvTreeListEntry* pParent = m_pItemList->FirstSelected();
         const ImageList& rImageList = m_pNaviWin->GetItemImageList();
         sal_uInt16 nImageID = ( _bIsElement ) ? IID_ELEMENT : IID_ATTRIBUTE;
         Image aImage = rImageList.GetImage( nImageID );
@@ -760,7 +785,7 @@ namespace svxform
         {
             DBG_UNHANDLED_EXCEPTION();
         }
-        return m_aItemList.InsertEntry(
+        return m_pItemList->InsertEntry(
             sName, aImage, aImage, pParent, false, TREELIST_APPEND, _pNewNode );
     }
 
@@ -780,32 +805,32 @@ namespace svxform
             {
                 // ID
                 _rEntry->getPropertyValue( PN_SUBMISSION_ID ) >>= sTemp;
-                pEntry = m_aItemList.InsertEntry( sTemp, aImage, aImage, NULL, false, TREELIST_APPEND, pNode );
+                pEntry = m_pItemList->InsertEntry( sTemp, aImage, aImage, NULL, false, TREELIST_APPEND, pNode );
                 // Action
                 _rEntry->getPropertyValue( PN_SUBMISSION_ACTION ) >>= sTemp;
                 OUString sEntry = SVX_RESSTR( RID_STR_DATANAV_SUBM_ACTION );
                 sEntry += sTemp;
-                m_aItemList.InsertEntry( sEntry, aImage, aImage, pEntry );
+                m_pItemList->InsertEntry( sEntry, aImage, aImage, pEntry );
                 // Method
                 _rEntry->getPropertyValue( PN_SUBMISSION_METHOD ) >>= sTemp;
                 sEntry = SVX_RESSTR( RID_STR_DATANAV_SUBM_METHOD );
                 sEntry +=  m_aMethodString.toUI( sTemp );
-                m_aItemList.InsertEntry( sEntry, aImage, aImage, pEntry );
+                m_pItemList->InsertEntry( sEntry, aImage, aImage, pEntry );
                 // Ref
                 _rEntry->getPropertyValue( PN_SUBMISSION_REF ) >>= sTemp;
                 sEntry = SVX_RESSTR( RID_STR_DATANAV_SUBM_REF );
                 sEntry += sTemp;
-                m_aItemList.InsertEntry( sEntry, aImage, aImage, pEntry );
+                m_pItemList->InsertEntry( sEntry, aImage, aImage, pEntry );
                 // Bind
                 _rEntry->getPropertyValue( PN_SUBMISSION_BIND ) >>= sTemp;
                 sEntry = SVX_RESSTR( RID_STR_DATANAV_SUBM_BIND );
                 sEntry += sTemp;
-                m_aItemList.InsertEntry( sEntry, aImage, aImage, pEntry );
+                m_pItemList->InsertEntry( sEntry, aImage, aImage, pEntry );
                 // Replace
                 _rEntry->getPropertyValue( PN_SUBMISSION_REPLACE ) >>= sTemp;
                 sEntry = SVX_RESSTR( RID_STR_DATANAV_SUBM_REPLACE );
                 sEntry += m_aReplaceString.toUI( sTemp );
-                m_aItemList.InsertEntry( sEntry, aImage, aImage, pEntry );
+                m_pItemList->InsertEntry( sEntry, aImage, aImage, pEntry );
             }
             catch ( Exception& )
             {
@@ -823,7 +848,7 @@ namespace svxform
                 sName += sDelim;
                 _rEntry->getPropertyValue( PN_BINDING_EXPR ) >>= sTemp;
                 sName += sTemp;
-                pEntry = m_aItemList.InsertEntry(
+                pEntry = m_pItemList->InsertEntry(
                     sName, aImage, aImage, NULL, false, TREELIST_APPEND, pNode );
             }
             catch ( Exception& )
@@ -845,45 +870,45 @@ namespace svxform
         {
             try
             {
-                pEntry = m_aItemList.FirstSelected();
+                pEntry = m_pItemList->FirstSelected();
 
                 // #i36262# may be called for submission entry *or* for
                 // submission children. If we don't have any children, we
                 // assume the latter case and use the parent
-                if( m_aItemList.GetEntry( pEntry, 0 ) == NULL )
+                if( m_pItemList->GetEntry( pEntry, 0 ) == NULL )
                 {
-                    pEntry = m_aItemList.GetModel()->GetParent( pEntry );
+                    pEntry = m_pItemList->GetModel()->GetParent( pEntry );
                 }
 
                 _rEntry->getPropertyValue( PN_SUBMISSION_ID ) >>= sTemp;
-                m_aItemList.SetEntryText( pEntry, sTemp );
+                m_pItemList->SetEntryText( pEntry, sTemp );
 
                 _rEntry->getPropertyValue( PN_SUBMISSION_BIND ) >>= sTemp;
                 OUString sEntry = SVX_RESSTR( RID_STR_DATANAV_SUBM_BIND );
                 sEntry += sTemp;
                 sal_uIntPtr nPos = 0;
-                SvTreeListEntry* pChild = m_aItemList.GetEntry( pEntry, nPos++ );
-                m_aItemList.SetEntryText( pChild, sEntry );
+                SvTreeListEntry* pChild = m_pItemList->GetEntry( pEntry, nPos++ );
+                m_pItemList->SetEntryText( pChild, sEntry );
                 _rEntry->getPropertyValue( PN_SUBMISSION_REF ) >>= sTemp;
                 sEntry = SVX_RESSTR( RID_STR_DATANAV_SUBM_REF );
                 sEntry += sTemp;
-                pChild = m_aItemList.GetEntry( pEntry, nPos++ );
-                m_aItemList.SetEntryText( pChild, sEntry );
+                pChild = m_pItemList->GetEntry( pEntry, nPos++ );
+                m_pItemList->SetEntryText( pChild, sEntry );
                 _rEntry->getPropertyValue( PN_SUBMISSION_ACTION ) >>= sTemp;
                 sEntry = SVX_RESSTR( RID_STR_DATANAV_SUBM_ACTION );
                 sEntry += sTemp;
-                pChild = m_aItemList.GetEntry( pEntry, nPos++ );
-                m_aItemList.SetEntryText( pChild, sEntry );
+                pChild = m_pItemList->GetEntry( pEntry, nPos++ );
+                m_pItemList->SetEntryText( pChild, sEntry );
                 _rEntry->getPropertyValue( PN_SUBMISSION_METHOD ) >>= sTemp;
                 sEntry = SVX_RESSTR( RID_STR_DATANAV_SUBM_METHOD );
                 sEntry += m_aMethodString.toUI( sTemp );
-                pChild = m_aItemList.GetEntry( pEntry, nPos++ );
-                m_aItemList.SetEntryText( pChild, sEntry );
+                pChild = m_pItemList->GetEntry( pEntry, nPos++ );
+                m_pItemList->SetEntryText( pChild, sEntry );
                 _rEntry->getPropertyValue( PN_SUBMISSION_REPLACE ) >>= sTemp;
                 sEntry = SVX_RESSTR( RID_STR_DATANAV_SUBM_REPLACE );
                 sEntry += m_aReplaceString.toUI( sTemp );
-                pChild = m_aItemList.GetEntry( pEntry, nPos++ );
-                m_aItemList.SetEntryText( pChild, sEntry );
+                pChild = m_pItemList->GetEntry( pEntry, nPos++ );
+                m_pItemList->SetEntryText( pChild, sEntry );
             }
             catch ( Exception& )
             {
@@ -896,9 +921,9 @@ namespace svxform
     bool XFormsPage::RemoveEntry()
     {
         bool bRet = false;
-        SvTreeListEntry* pEntry = m_aItemList.FirstSelected();
+        SvTreeListEntry* pEntry = m_pItemList->FirstSelected();
         if ( pEntry &&
-             ( DGTInstance != m_eGroup || m_aItemList.GetParent( pEntry ) ) )
+             ( DGTInstance != m_eGroup || m_pItemList->GetParent( pEntry ) ) )
         {
             Reference< css::xforms::XModel > xModel( m_xUIHelper, UNO_QUERY );
             DBG_ASSERT( xModel.is(), "XFormsPage::RemoveEntry(): no model" );
@@ -921,7 +946,7 @@ namespace svxform
                     aQBox.SetMessText( sMessText );
                     if ( aQBox.Execute() == RET_YES )
                     {
-                        SvTreeListEntry* pParent = m_aItemList.GetParent( pEntry );
+                        SvTreeListEntry* pParent = m_pItemList->GetParent( pEntry );
                         DBG_ASSERT( pParent, "XFormsPage::RemoveEntry(): no parent entry" );
                         ItemNode* pParentNode = static_cast< ItemNode* >( pParent->GetUserData() );
                         DBG_ASSERT( pParentNode && pParentNode->m_xNode.is(), "XFormsPage::RemoveEntry(): no parent XNode" );
@@ -978,7 +1003,7 @@ namespace svxform
             }
 
             if ( bRet )
-                m_aItemList.RemoveEntry( pEntry );
+                m_pItemList->RemoveEntry( pEntry );
         }
 
         return bRet;
@@ -996,7 +1021,7 @@ namespace svxform
             switch ( nCode )
             {
                 case KEY_DELETE:
-                    nHandled = DoMenuAction( TBI_ITEM_REMOVE );
+                    nHandled = DoMenuAction( m_nRemoveId );
                     break;
             }
         }
@@ -1007,12 +1032,12 @@ namespace svxform
     void XFormsPage::Resize()
     {
         Size aSize = GetOutputSizePixel();
-        Size aTbxSize = m_aToolBox.GetSizePixel();
+        Size aTbxSize = m_pToolBox->GetSizePixel();
         aTbxSize.Width() = aSize.Width();
-        m_aToolBox.SetSizePixel( aTbxSize );
+        m_pToolBox->SetSizePixel( aTbxSize );
         aSize.Width() -= 4;
         aSize.Height() -= ( 4 + aTbxSize.Height() );
-        m_aItemList.SetPosSizePixel( Point( 2, 2 + aTbxSize.Height() ), aSize );
+        m_pItemList->SetPosSizePixel( Point( 2, 2 + aTbxSize.Height() ), aSize );
     }
 
     OUString XFormsPage::SetModel( const Reference< css::xforms::XModel >& _xModel, sal_uInt16 _nPagePos )
@@ -1137,7 +1162,7 @@ namespace svxform
                                     sEntry += sTemp;
 
                                     ItemNode* pNode = new ItemNode( xPropSet );
-                                    m_aItemList.InsertEntry(
+                                    m_pItemList->InsertEntry(
                                         sEntry, aImage1, aImage2, NULL, false, TREELIST_APPEND, pNode );
                                 }
                             }
@@ -1163,7 +1188,7 @@ namespace svxform
     void XFormsPage::ClearModel()
     {
         m_bHasModel = false;
-        m_aItemList.DeleteAndClear();
+        m_pItemList->DeleteAndClear();
     }
 
     OUString XFormsPage::LoadInstance(
@@ -1227,14 +1252,14 @@ namespace svxform
         bool bEnableEdit = false;
         bool bEnableRemove = false;
 
-        SvTreeListEntry* pEntry = m_aItemList.FirstSelected();
+        SvTreeListEntry* pEntry = m_pItemList->FirstSelected();
         if ( pEntry )
         {
             bEnableAdd = true;
             bool bSubmitChild = false;
-            if ( DGTSubmission == m_eGroup && m_aItemList.GetParent( pEntry ) )
+            if ( DGTSubmission == m_eGroup && m_pItemList->GetParent( pEntry ) )
             {
-                pEntry = m_aItemList.GetParent( pEntry );
+                pEntry = m_pItemList->GetParent( pEntry );
                 bSubmitChild = true;
             }
             ItemNode* pNode = static_cast< ItemNode* >( pEntry->GetUserData() );
@@ -1242,7 +1267,7 @@ namespace svxform
             {
                 bEnableEdit = true;
                 bEnableRemove = ( bSubmitChild != true );
-                if ( DGTInstance == m_eGroup && !m_aItemList.GetParent( pEntry ) )
+                if ( DGTInstance == m_eGroup && !m_pItemList->GetParent( pEntry ) )
                     bEnableRemove = false;
                 if ( pNode->m_xNode.is() )
                 {
@@ -1265,19 +1290,19 @@ namespace svxform
         else if ( m_eGroup != DGTInstance )
             bEnableAdd = true;
 
-        m_aToolBox.EnableItem( TBI_ITEM_ADD, bEnableAdd );
-        m_aToolBox.EnableItem( TBI_ITEM_ADD_ELEMENT, bEnableAdd );
-        m_aToolBox.EnableItem( TBI_ITEM_ADD_ATTRIBUTE, bEnableAdd );
-        m_aToolBox.EnableItem( TBI_ITEM_EDIT, bEnableEdit );
-        m_aToolBox.EnableItem( TBI_ITEM_REMOVE, bEnableRemove );
+        m_pToolBox->EnableItem( m_nAddId, bEnableAdd );
+        m_pToolBox->EnableItem( m_nAddElementId, bEnableAdd );
+        m_pToolBox->EnableItem( m_nAddAttributeId, bEnableAdd );
+        m_pToolBox->EnableItem( m_nEditId, bEnableEdit );
+        m_pToolBox->EnableItem( m_nRemoveId, bEnableRemove );
 
         if ( _pMenu )
         {
-            _pMenu->EnableItem( TBI_ITEM_ADD, bEnableAdd );
-            _pMenu->EnableItem( TBI_ITEM_ADD_ELEMENT, bEnableAdd );
-            _pMenu->EnableItem( TBI_ITEM_ADD_ATTRIBUTE, bEnableAdd );
-            _pMenu->EnableItem( TBI_ITEM_EDIT, bEnableEdit );
-            _pMenu->EnableItem( TBI_ITEM_REMOVE, bEnableRemove );
+            _pMenu->EnableItem( m_nAddId, bEnableAdd );
+            _pMenu->EnableItem( m_nAddElementId, bEnableAdd );
+            _pMenu->EnableItem( m_nAddAttributeId, bEnableAdd );
+            _pMenu->EnableItem( m_nEditId, bEnableEdit );
+            _pMenu->EnableItem( m_nRemoveId, bEnableRemove );
         }
         if ( DGTInstance == m_eGroup )
         {
@@ -1303,12 +1328,12 @@ namespace svxform
                     }
                 }
             }
-            m_aToolBox.SetItemText( TBI_ITEM_EDIT, SVX_RESSTR( nResId1 ) );
-            m_aToolBox.SetItemText( TBI_ITEM_REMOVE, SVX_RESSTR( nResId2 ) );
+            m_pToolBox->SetItemText( m_nEditId, SVX_RESSTR( nResId1 ) );
+            m_pToolBox->SetItemText( m_nRemoveId, SVX_RESSTR( nResId2 ) );
             if ( _pMenu )
             {
-                _pMenu->SetItemText( TBI_ITEM_EDIT, SVX_RESSTR( nResId1 ) );
-                _pMenu->SetItemText( TBI_ITEM_REMOVE, SVX_RESSTR( nResId2 ) );
+                _pMenu->SetItemText( m_nEditId, SVX_RESSTR( nResId1 ) );
+                _pMenu->SetItemText( m_nRemoveId, SVX_RESSTR( nResId2 ) );
             }
         }
     }
diff --git a/svx/source/form/datanavi.src b/svx/source/form/datanavi.src
index bae6424..f4c071b 100644
--- a/svx/source/form/datanavi.src
+++ b/svx/source/form/datanavi.src
@@ -24,63 +24,6 @@
 
 #define MASKCOLOR   MaskColor = Color { Red = 0xFFFF ; Green = 0x0000 ; Blue = 0xFFFF ; };
 
-TabPage RID_SVX_XFORMS_TABPAGES
-{
-    HelpID = "svx:TabPage:RID_SVX_XFORMS_TABPAGES";
-    Hide = TRUE ;
-    DialogControl = TRUE;
-    Size = MAP_APPFONT ( 63 , 100 ) ;
-    ToolBox TB_ITEMS
-    {
-        HelpId = HID_XFORMS_TOOLBOX ;
-        SVLook = TRUE ;
-        Pos = MAP_APPFONT ( 0 , 0 ) ;
-        ItemList =
-        {
-            ToolBoxItem
-            {
-                Identifier = TBI_ITEM_ADD ;
-                HelpId = HID_XFORMS_TOOLBOX_ITEM_ADD ;
-                Text [ en-US ] = "Add Item" ;
-            };
-            ToolBoxItem
-            {
-                Identifier = TBI_ITEM_ADD_ELEMENT ;
-                HelpId = HID_XFORMS_TOOLBOX_ITEM_ADD_ELEMENT ;
-                Text [ en-US ] = "Add Element" ;
-            };
-            ToolBoxItem
-            {
-                Identifier = TBI_ITEM_ADD_ATTRIBUTE ;
-                HelpId = HID_XFORMS_TOOLBOX_ITEM_ADD_ATTRIBUTE ;
-                Text [ en-US ] = "Add Attribute" ;
-            };
-            ToolBoxItem
-            {
-                Identifier = TBI_ITEM_EDIT ;
-                HelpId = HID_XFORMS_TOOLBOX_ITEM_EDIT ;
-                Text [ en-US ] = "Edit" ;
-            };
-            ToolBoxItem
-            {
-                Type = TOOLBOXITEM_SEPARATOR ;
-            };
-            ToolBoxItem
-            {
-                Identifier = TBI_ITEM_REMOVE ;
-                HelpId = HID_XFORMS_TOOLBOX_ITEM_REMOVE ;
-                Text [ en-US ] = "Delete" ;
-            };
-        };
-    };
-    Control LB_ITEMS
-    {
-        HelpId = HID_XFORMS_ITEMS_LIST ;
-        Pos = MAP_APPFONT ( 0 , 0 ) ;
-        Size = MAP_APPFONT ( 63 , 100 ) ;
-        Border = TRUE ;
-        TabStop = TRUE;
-    };
 #define IMG_LST                 \
 IdList =                        \
 {                               \
@@ -92,14 +35,13 @@ IdList =                        \
 };                              \
 IdCount = { 5 ; } ;
 
-    ImageList IL_TBX_BMPS
-    {
-        Prefix = "tb";
-        MASKCOLOR
-        IMG_LST
-    };
-#undef IMG_LST
+ImageList RID_SVXIMGLIST_XFORMS_TBX
+{
+    Prefix = "tb";
+    MASKCOLOR
+    IMG_LST
 };
+#undef IMG_LST
 
 Window RID_SVXWIN_DATANAVIGATOR
 {
diff --git a/svx/source/inc/datanavi.hrc b/svx/source/inc/datanavi.hrc
index 74ae092..a9ba599 100644
--- a/svx/source/inc/datanavi.hrc
+++ b/svx/source/inc/datanavi.hrc
@@ -21,9 +21,6 @@
 #define _SVX_DATANAVI_HRC
 
 // class XFormsInstancePage
-// Controls
-#define TB_ITEMS                10
-#define LB_ITEMS                11
 
 // Menu items
 #define MID_INSERT_CONTROL      100
@@ -35,9 +32,6 @@
 #define TBI_ITEM_EDIT           13
 #define TBI_ITEM_REMOVE         14
 
-// ImageLists
-#define IL_TBX_BMPS             20
-
 // ImageIndexes
 #define IID_ITEM_ADD            1
 #define IID_ITEM_ADD_ELEMENT    2
diff --git a/svx/source/inc/datanavi.hxx b/svx/source/inc/datanavi.hxx
index 498c6f5..43788ca 100644
--- a/svx/source/inc/datanavi.hxx
+++ b/svx/source/inc/datanavi.hxx
@@ -117,12 +117,17 @@ namespace svxform
     private:
         XFormsPage*             m_pXFormsPage;
         DataGroupType           m_eGroup;
+        sal_uInt16              m_nAddId;
+        sal_uInt16              m_nAddElementId;
+        sal_uInt16              m_nAddAttributeId;
+        sal_uInt16              m_nEditId;
+        sal_uInt16              m_nRemoveId;
 
     protected:
         using SvTreeListBox::ExecuteDrop;
 
     public:
-        DataTreeListBox( XFormsPage* pPage, DataGroupType _eGroup, const ResId& rResId );
+        DataTreeListBox( Window* pParent, WinBits nBits );
         virtual ~DataTreeListBox();
 
         virtual PopupMenu*      CreateContextMenu( void ) SAL_OVERRIDE;
@@ -131,6 +136,13 @@ namespace svxform
         virtual sal_Int8        ExecuteDrop( const ExecuteDropEvent& rEvt ) SAL_OVERRIDE;
         virtual void            StartDrag( sal_Int8 nAction, const Point& rPosPixel ) SAL_OVERRIDE;
 
+        void                    SetGroup(DataGroupType _eGroup);
+        void                    SetXFormsPage(XFormsPage* _pPage);
+        void                    SetToolBoxItemIds(sal_uInt16 _nAddId,
+                                                  sal_uInt16 _nAddElementId,
+                                                  sal_uInt16 _nAddAttributeId,
+                                                  sal_uInt16 _nEditId,
+                                                  sal_uInt16 _nRemoveId);
         void                    DeleteAndClear();
         void                    RemoveEntry( SvTreeListEntry* _pEntry );
     };
@@ -237,8 +249,13 @@ namespace svxform
         MethodString                m_aMethodString;
         ReplaceString               m_aReplaceString;
 
-        ToolBox                     m_aToolBox;
-        DataTreeListBox             m_aItemList;
+        ToolBox                     *m_pToolBox;
+        DataTreeListBox             *m_pItemList;
+        sal_uInt16                  m_nAddId;
+        sal_uInt16                  m_nAddElementId;
+        sal_uInt16                  m_nAddAttributeId;
+        sal_uInt16                  m_nEditId;
+        sal_uInt16                  m_nRemoveId;
 
         XFormsUIHelper1_ref         m_xUIHelper;
 
@@ -284,7 +301,7 @@ namespace svxform
         bool                        DoMenuAction( sal_uInt16 _nMenuID );
         void                        EnableMenuItems( Menu* _pMenu );
 
-        inline SvTreeListEntry*     GetSelectedItem() const { return m_aItemList.FirstSelected(); }
+        inline SvTreeListEntry*     GetSelectedItem() const { return m_pItemList->FirstSelected(); }
         inline const OUString&      GetInstanceName() const { return m_sInstanceName; }
         inline const OUString&      GetInstanceURL() const { return m_sInstanceURL; }
         inline bool                 GetLinkOnce() const { return m_bLinkOnce; }
diff --git a/svx/uiconfig/ui/xformspage.ui b/svx/uiconfig/ui/xformspage.ui
new file mode 100644
index 0000000..b5ad229
--- /dev/null
+++ b/svx/uiconfig/ui/xformspage.ui
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.16.1 -->
+<interface>
+  <requires lib="gtk+" version="3.0"/>
+  <!-- interface-requires LibreOffice 1.0 -->
+  <object class="GtkBox" id="XFormsPage">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="hexpand">True</property>
+    <property name="vexpand">True</property>
+    <property name="border_width">6</property>
+    <property name="orientation">vertical</property>
+    <property name="spacing">6</property>
+    <child>
+      <object class="GtkToolbar" id="toolbar">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <child>
+          <object class="GtkToolButton" id="TBI_ITEM_ADD">
+            <property name="use_action_appearance">False</property>
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="valign">start</property>
+            <property name="action_name">TBI_ITEM_ADD</property>
+            <property name="label" translatable="yes">Add Item</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="homogeneous">True</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToolButton" id="TBI_ITEM_ADD_ELEMENT">
+            <property name="use_action_appearance">False</property>
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="valign">start</property>
+            <property name="action_name">TBI_ITEM_ADD_ELEMENT</property>
+            <property name="label" translatable="yes">Add Element</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="homogeneous">True</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToolButton" id="TBI_ITEM_ADD_ATTRIBUTE">
+            <property name="use_action_appearance">False</property>
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="valign">start</property>
+            <property name="action_name">TBI_ITEM_ADD_ATTRIBUTE</property>
+            <property name="label" translatable="yes">Add Attribute</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="homogeneous">True</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToolButton" id="TBI_ITEM_EDIT">
+            <property name="use_action_appearance">False</property>
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="valign">start</property>
+            <property name="action_name">TBI_ITEM_EDIT</property>
+            <property name="label" translatable="yes">Edit</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="homogeneous">True</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToolButton" id="TBI_ITEM_REMOVE">
+            <property name="use_action_appearance">False</property>
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="valign">start</property>
+            <property name="action_name">TBI_ITEM_REMOVE</property>
+            <property name="label" translatable="yes">Delete</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="homogeneous">True</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="fill">True</property>
+        <property name="position">0</property>
+      </packing>
+    </child>
+    <child>
+      <object class="svxlo-DataTreeListBox" id="items:border">
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
+        <child internal-child="selection">
+          <object class="GtkTreeSelection" id="treeview-selection1"/>
+        </child>
+      </object>
+      <packing>
+        <property name="expand">True</property>
+        <property name="fill">True</property>
+        <property name="position">1</property>
+      </packing>
+    </child>
+  </object>
+</interface>


More information about the Libreoffice-commits mailing list