[Libreoffice-commits] core.git: 7 commits - extras/source include/svx include/tools include/vcl rsc/inc rsc/source sc/inc sc/source sc/uiconfig sc/UIConfig_scalc.mk sfx2/source svx/source sw/inc sw/source tools/source vcl/source

Caolán McNamara caolanm at redhat.com
Fri Oct 7 21:04:19 UTC 2016


 extras/source/glade/libreoffice-catalog.xml.in |    7 
 include/svx/dialogs.hrc                        |    1 
 include/tools/rcid.h                           |    2 
 include/vcl/button.hxx                         |    1 
 include/vcl/spinfld.hxx                        |    1 
 rsc/inc/rscdb.hxx                              |    1 
 rsc/source/parser/rscicpx.cxx                  |   23 
 rsc/source/parser/rscinit.cxx                  |    4 
 sc/UIConfig_scalc.mk                           |    1 
 sc/inc/helpids.h                               |   21 
 sc/inc/sc.hrc                                  |    1 
 sc/source/ui/inc/content.hxx                   |    4 
 sc/source/ui/inc/navipi.hxx                    |  149 ++---
 sc/source/ui/navipi/content.cxx                |   26 
 sc/source/ui/navipi/navipi.cxx                 |  693 +++++++------------------
 sc/source/ui/navipi/navipi.hrc                 |   41 -
 sc/source/ui/navipi/navipi.src                 |  143 -----
 sc/source/ui/navipi/scenwnd.cxx                |   12 
 sc/source/ui/sidebar/ScPanelFactory.cxx        |    2 
 sc/uiconfig/scalc/ui/navigatorpanel.ui         |  241 ++++++++
 sfx2/source/appl/app.hrc                       |    1 
 sfx2/source/appl/newhelp.cxx                   |    9 
 sfx2/source/appl/newhelp.src                   |    8 
 sfx2/source/inc/helpid.hrc                     |    1 
 svx/source/tbxctrls/tbcontrl.cxx               |    5 
 svx/source/tbxctrls/tbcontrl.src               |   12 
 sw/inc/dialog.hrc                              |    5 
 sw/source/ui/dialog/dialog.src                 |    8 
 tools/source/rc/resmgr.cxx                     |    1 
 vcl/source/control/button.cxx                  |   13 
 vcl/source/control/spinfld.cxx                 |   13 
 31 files changed, 539 insertions(+), 911 deletions(-)

New commits:
commit 70abef48308e1c23558ca1152b6fbb0c56e867e7
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Oct 7 21:24:35 2016 +0100

    no CheckBox loaded from src files anymore
    
    Change-Id: I3211707d38c15a6fd3edcbe70fc3cee9b65dd6f6

diff --git a/include/tools/rcid.h b/include/tools/rcid.h
index 95c4b9a..a63d55e 100644
--- a/include/tools/rcid.h
+++ b/include/tools/rcid.h
@@ -54,8 +54,6 @@
 #define RSC_SPINBUTTON          (RSC_NOTYPE + 0x4d)
 #define RSC_RADIOBUTTON         (RSC_NOTYPE + 0x4e)
 
-#define RSC_CHECKBOX            (RSC_NOTYPE + 0x50)
-
 #define RSC_EDIT                (RSC_NOTYPE + 0x52)
 
 #define RSC_COMBOBOX            (RSC_NOTYPE + 0x54)
diff --git a/include/vcl/button.hxx b/include/vcl/button.hxx
index f6e05f4..af7cd55 100644
--- a/include/vcl/button.hxx
+++ b/include/vcl/button.hxx
@@ -438,7 +438,6 @@ public:
     SAL_DLLPRIVATE void         ImplSetMinimumNWFSize();
 public:
     explicit        CheckBox( vcl::Window* pParent, WinBits nStyle = 0 );
-    explicit        CheckBox( vcl::Window* pParent, const ResId& );
 
     virtual void    MouseButtonDown( const MouseEvent& rMEvt ) override;
     virtual void    Tracking( const TrackingEvent& rTEvt ) override;
diff --git a/rsc/inc/rscdb.hxx b/rsc/inc/rscdb.hxx
index 4f507f4..e7ffeba 100644
--- a/rsc/inc/rscdb.hxx
+++ b/rsc/inc/rscdb.hxx
@@ -181,7 +181,6 @@ class RscTypCont
     RscTop *    InitClassWindow( RscTop * pSuper, RscEnum * pMapUnit,
                                  RscArray * pLangGeo );
     RscTop *    InitClassControl( RscTop * pSuper );
-    RscTop *    InitClassCheckBox( RscTop * pSuper );
     RscTop *    InitClassPushButton( RscTop * pSuper );
     RscTop *    InitClassImageButton( RscTop * pSuper, RscTop * pClassImage,
                                     RscEnum * pTriState );
diff --git a/rsc/source/parser/rscicpx.cxx b/rsc/source/parser/rscicpx.cxx
index e757a7b..7a03057 100644
--- a/rsc/source/parser/rscicpx.cxx
+++ b/rsc/source/parser/rscicpx.cxx
@@ -262,29 +262,6 @@ RscTop * RscTypCont::InitClassControl( RscTop * pSuper )
     return pClassControl;
 }
 
-RscTop * RscTypCont::InitClassCheckBox( RscTop * pSuper )
-{
-    Atom        nId;
-    RscTop *    pClassCheckBox;
-
-    // initialize class
-    nId = pHS->getID( "CheckBox" );
-    pClassCheckBox = new RscClass( nId, RSC_CHECKBOX, pSuper );
-    pClassCheckBox->SetCallPar( *pWinPar1, *pWinPar2, *pWinParType );
-    aNmTb.Put( nId, CLASSNAME, pClassCheckBox );
-
-    // initialize variables
-    INS_WINBIT( pClassCheckBox, WordBreak )
-    INS_WINBIT( pClassCheckBox, Top )
-    INS_WINBIT( pClassCheckBox, VCenter )
-    INS_WINBIT( pClassCheckBox, Bottom )
-
-    nId = aNmTb.Put( "Check", VARNAME );
-    pClassCheckBox->SetVariable( nId, &aBool );
-
-    return pClassCheckBox;
-}
-
 RscTop * RscTypCont::InitClassPushButton( RscTop * pSuper )
 {
     Atom        nId;
diff --git a/rsc/source/parser/rscinit.cxx b/rsc/source/parser/rscinit.cxx
index 15596c6..5129f69 100644
--- a/rsc/source/parser/rscinit.cxx
+++ b/rsc/source/parser/rscinit.cxx
@@ -64,7 +64,6 @@ void RscTypCont::Init()
     RscTop   *  pClassWindow;
     RscTop   *  pClassControl;
     RscTop   *  pClassButton;
-    RscTop   *  pClassCheckBox;
     RscTop   *  pClassPushButton;
     RscTop   *  pClassRadioButton;
     RscTop   *  pClassImageButton;
@@ -307,9 +306,6 @@ void RscTypCont::Init()
     aNmTb.Put( nId, CLASSNAME, pClassButton );
     pRoot->Insert( pClassButton );
 
-    pClassCheckBox = InitClassCheckBox( pClassButton );
-    pRoot->Insert( pClassCheckBox );
-
     // initialize class
     pClassPushButton = InitClassPushButton( pClassButton );
     pRoot->Insert( pClassPushButton );
diff --git a/tools/source/rc/resmgr.cxx b/tools/source/rc/resmgr.cxx
index 983f78d..41305b0 100644
--- a/tools/source/rc/resmgr.cxx
+++ b/tools/source/rc/resmgr.cxx
@@ -1424,7 +1424,6 @@ OString ResMgr::GetAutoHelpId()
                 // auto help ids for controls
                 switch( pRC->pResource->GetRT() ) {
                     case RSC_RADIOBUTTON:       aHID.append( "RadioButton" );      break;
-                    case RSC_CHECKBOX:          aHID.append( "CheckBox" );         break;
                     case RSC_EDIT:              aHID.append( "Edit" );             break;
                     case RSC_LISTBOX:           aHID.append( "ListBox" );          break;
                     case RSC_COMBOBOX:          aHID.append( "ComboBox" );         break;
diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx
index 4e5904e..e232e0b 100644
--- a/vcl/source/control/button.cxx
+++ b/vcl/source/control/button.cxx
@@ -3237,19 +3237,6 @@ CheckBox::CheckBox( vcl::Window* pParent, WinBits nStyle ) :
     ImplInit( pParent, nStyle );
 }
 
-CheckBox::CheckBox( vcl::Window* pParent, const ResId& rResId ) :
-    Button( WINDOW_CHECKBOX ), mbLegacyNoTextAlign( false )
-{
-    rResId.SetRT( RSC_CHECKBOX );
-    WinBits nStyle = ImplInitRes( rResId );
-    ImplInitCheckBoxData();
-    ImplInit( pParent, nStyle );
-    ImplLoadRes( rResId );
-
-    if ( !(nStyle & WB_HIDE) )
-        Show();
-}
-
 void CheckBox::MouseButtonDown( const MouseEvent& rMEvt )
 {
     if ( rMEvt.IsLeft() && maMouseRect.IsInside( rMEvt.GetPosPixel() ) )
commit 64a5f3b9835c56b27efd678916ab48ded872ce08
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Oct 7 21:21:06 2016 +0100

    de-src RID_HELP_ONSTARTUP_BOX checkbox
    
    Change-Id: I30ff54c55078333526ad34256f1c81c62fca920c

diff --git a/sfx2/source/appl/app.hrc b/sfx2/source/appl/app.hrc
index c49ec82..abd8ab2 100644
--- a/sfx2/source/appl/app.hrc
+++ b/sfx2/source/appl/app.hrc
@@ -82,7 +82,6 @@
 #define STR_QUICKSTART_STARTCENTER              (RID_SFX_APP_START+148)
 #define STR_QUICKSTART_RECENTDOC                (RID_SFX_APP_START+149)
 
-#define RID_HELP_ONSTARTUP_BOX                  (RID_SFX_APP_START+144)
 #define RID_HELP_ONSTARTUP_TEXT                 (RID_SFX_APP_START+145)
 
 #define IMG_HELP_TOOLBOX_L_INDEX_ON             (RID_SFX_APP_START+160)
diff --git a/sfx2/source/appl/newhelp.cxx b/sfx2/source/appl/newhelp.cxx
index f0f77e7..9735cb2 100644
--- a/sfx2/source/appl/newhelp.cxx
+++ b/sfx2/source/appl/newhelp.cxx
@@ -1853,7 +1853,7 @@ SfxHelpTextWindow_Impl::SfxHelpTextWindow_Impl( SfxHelpWindow_Impl* pParent ) :
     Window( pParent, WB_CLIPCHILDREN | WB_TABSTOP | WB_DIALOGCONTROL ),
 
     aToolBox            ( VclPtr<ToolBox>::Create(this, 0) ),
-    aOnStartupCB        ( VclPtr<CheckBox>::Create(this, SfxResId( RID_HELP_ONSTARTUP_BOX )) ),
+    aOnStartupCB        ( VclPtr<CheckBox>::Create(this, WB_HIDE | WB_TABSTOP) ),
     aSelectIdle         ( "sfx2 appl SfxHelpTextWindow_Impl Select" ),
     aIndexOnImage       ( SfxResId( IMG_HELP_TOOLBOX_INDEX_ON ) ),
     aIndexOffImage      ( SfxResId( IMG_HELP_TOOLBOX_INDEX_OFF ) ),
@@ -1869,6 +1869,8 @@ SfxHelpTextWindow_Impl::SfxHelpTextWindow_Impl( SfxHelpWindow_Impl* pParent ) :
     bIsInClose          ( false ),
     bIsFullWordSearch   ( false )
 {
+    aOnStartupCB->SetSizePixel(aOnStartupCB->PixelToLogic(Size(200, 10), MapUnit::MapAppFont));
+
     sfx2::AddToTaskPaneList( aToolBox.get() );
 
     xFrame = Frame::create( ::comphelper::getProcessComponentContext() );
diff --git a/sfx2/source/appl/newhelp.src b/sfx2/source/appl/newhelp.src
index da4fc16..bbe6353 100644
--- a/sfx2/source/appl/newhelp.src
+++ b/sfx2/source/appl/newhelp.src
@@ -235,13 +235,6 @@ Image IMG_HELP_TOOLBOX_L_COPY
     ImageBitmap = Bitmap { File = "lc05711.png" ; };
 };
 
-CheckBox RID_HELP_ONSTARTUP_BOX
-{
-    Hide = TRUE;
-    TabStop = TRUE;
-    Size = MAP_APPFONT ( 200 , 10 ) ;
-};
-
 String RID_HELP_ONSTARTUP_TEXT
 {
     Text [ en-US ] = "~Display %PRODUCTNAME %MODULENAME Help at Startup";
commit 4b309834ee78236ad9cd3a29901fb6109b5833b3
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Oct 7 21:17:53 2016 +0100

    HID_HELP_ONSTARTUP_BOX goes nowhere in help
    
    Change-Id: I9a8556fcda0bd39107491dd178b816e4421f160c

diff --git a/sfx2/source/appl/newhelp.cxx b/sfx2/source/appl/newhelp.cxx
index e7b7dd4..f0f77e7 100644
--- a/sfx2/source/appl/newhelp.cxx
+++ b/sfx2/source/appl/newhelp.cxx
@@ -1868,7 +1868,6 @@ SfxHelpTextWindow_Impl::SfxHelpTextWindow_Impl( SfxHelpWindow_Impl* pParent ) :
     bIsIndexOn          ( false ),
     bIsInClose          ( false ),
     bIsFullWordSearch   ( false )
-
 {
     sfx2::AddToTaskPaneList( aToolBox.get() );
 
@@ -1909,12 +1908,8 @@ SfxHelpTextWindow_Impl::SfxHelpTextWindow_Impl( SfxHelpWindow_Impl* pParent ) :
         bIsDebug = true;
 
     SvtMiscOptions().AddListenerLink( LINK( this, SfxHelpTextWindow_Impl, NotifyHdl ) );
-
-    if ( !aOnStartupCB->GetHelpId().getLength() )
-        aOnStartupCB->SetHelpId( HID_HELP_ONSTARTUP_BOX );
 }
 
-
 SfxHelpTextWindow_Impl::~SfxHelpTextWindow_Impl()
 {
     disposeOnce();
diff --git a/sfx2/source/appl/newhelp.src b/sfx2/source/appl/newhelp.src
index f1f228e..da4fc16 100644
--- a/sfx2/source/appl/newhelp.src
+++ b/sfx2/source/appl/newhelp.src
@@ -237,7 +237,6 @@ Image IMG_HELP_TOOLBOX_L_COPY
 
 CheckBox RID_HELP_ONSTARTUP_BOX
 {
-    HelpId = HID_HELP_ONSTARTUP_BOX;
     Hide = TRUE;
     TabStop = TRUE;
     Size = MAP_APPFONT ( 200 , 10 ) ;
diff --git a/sfx2/source/inc/helpid.hrc b/sfx2/source/inc/helpid.hrc
index 6f6544a..6777c02 100644
--- a/sfx2/source/inc/helpid.hrc
+++ b/sfx2/source/inc/helpid.hrc
@@ -52,7 +52,6 @@
 
 #define HID_CONFIG_SAVE                                       "SFX2_HID_CONFIG_SAVE"
 
-#define HID_HELP_ONSTARTUP_BOX                                "SFX2_HID_HELP_ONSTARTUP_BOX"
 #define HID_CTRL_CUSTOMPROPS_YES_NO                           "SFX2_HID_CTRL_CUSTOMPROPS_YES_NO"
 
 #define HID_QUERY_LOAD_TEMPLATE                               "SFX2_HID_QUERY_LOAD_TEMPLATE"
commit 70e671ad6d3cfe224787a2249874c08bb4f96007
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Oct 7 21:14:46 2016 +0100

    two unused CheckBox resources in sw
    
    Change-Id: I5716c22693c89c7d546c62703d63b7d150daa2cd

diff --git a/sw/inc/dialog.hrc b/sw/inc/dialog.hrc
index f65b7f9..be48ffc 100644
--- a/sw/inc/dialog.hrc
+++ b/sw/inc/dialog.hrc
@@ -34,11 +34,6 @@
 #define STR_CLOSELINKMSG        (RC_DIALOG_BEGIN +  3)
 #define STR_PATH_NOT_FOUND      (RC_DIALOG_BEGIN +  4)
 
-// Controls *****************************************************************
-
-#define CB_USE_PASSWD           (RC_DIALOG_BEGIN     )
-#define CB_READ_ONLY            (RC_DIALOG_BEGIN +  1)
-
 // Bereiche *****************************************************************
 
 #define RC_REGIONSW_BEGIN       (RC_DIALOG_BEGIN + 60)
diff --git a/sw/source/ui/dialog/dialog.src b/sw/source/ui/dialog/dialog.src
index 80e0d4f..9d7804d 100644
--- a/sw/source/ui/dialog/dialog.src
+++ b/sw/source/ui/dialog/dialog.src
@@ -18,14 +18,6 @@
  */
 #include "dialog.hrc"
 
-CheckBox CB_USE_PASSWD
-{
-    Text [ en-US ] = "~Password" ;
-};
-CheckBox CB_READ_ONLY
-{
-    Text [ en-US ] = "~Read-only" ;
-};
 String STR_LINKEDIT_TEXT
 {
     Text [ en-US ] = "Edit links" ;
commit f60ea9332bf04bae743653298cbce9e48146ca35
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Oct 7 21:09:28 2016 +0100

    de-src SvxStyleBox_Impl combobox
    
    Change-Id: I42963a03fcc2657f55fb7b807aa5312c654928cd

diff --git a/include/svx/dialogs.hrc b/include/svx/dialogs.hrc
index c6aa5c2..c44b6c5 100644
--- a/include/svx/dialogs.hrc
+++ b/include/svx/dialogs.hrc
@@ -177,7 +177,6 @@
 #define RID_SVXMN_RULER                     (RID_SVX_START +  92)
 
 // for Toolbox-Control style
-#define RID_SVXTBX_STYLE                    (RID_SVX_START + 120)
 #define RID_SVX_STYLE_MENU                  (RID_SVX_START + 121)
 #define RID_SVX_UPDATE_STYLE                (RID_SVX_START + 122)
 #define RID_SVX_MODIFY_STYLE                (RID_SVX_START + 123)
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index 3b45779..1c50946 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -340,7 +340,7 @@ SvxStyleBox_Impl::SvxStyleBox_Impl(vcl::Window* pParent,
                                    const OUString& rClearFormatKey,
                                    const OUString& rMoreKey,
                                    bool bInSpec)
-    : ComboBox( pParent, SVX_RES( RID_SVXTBX_STYLE ) )
+    : ComboBox(pParent, WB_SORT | WB_BORDER | WB_HIDE | WB_DROPDOWN | WB_AUTOHSCROLL)
     , eStyleFamily( eFamily )
     , nCurSel(0)
     , bRelease( true )
@@ -353,10 +353,11 @@ SvxStyleBox_Impl::SvxStyleBox_Impl(vcl::Window* pParent,
     , bInSpecialMode( bInSpec )
     , m_pMenu( VclPtr<PopupMenu>::Create(SVX_RES( RID_SVX_STYLE_MENU )) )
 {
+    SetHelpId(HID_STYLE_LISTBOX);
     m_pMenu->SetSelectHdl( LINK( this, SvxStyleBox_Impl, MenuSelectHdl ) );
     for(VclPtr<MenuButton> & rpButton : m_pButtons)
         rpButton = nullptr;
-    aLogicalSize = PixelToLogic( GetSizePixel(), MapUnit::MapAppFont );
+    aLogicalSize = PixelToLogic(Size(60, 86), MapUnit::MapAppFont);
     SetOptimalSize();
     EnableAutocomplete( true );
     EnableUserDraw( true );
diff --git a/svx/source/tbxctrls/tbcontrl.src b/svx/source/tbxctrls/tbcontrl.src
index 312d462..27aed7b 100644
--- a/svx/source/tbxctrls/tbcontrl.src
+++ b/svx/source/tbxctrls/tbcontrl.src
@@ -86,18 +86,6 @@ String RID_SVXSTR_MOREBULLETS
     Text [ en-US ] = "More Bullets..." ;
 };
 
-ComboBox RID_SVXTBX_STYLE
-{
-    HelpId = HID_STYLE_LISTBOX ;
-    Size = MAP_APPFONT ( 60 , 86 ) ;
-    DropDown = TRUE ;
-    Sort = TRUE ;
-    AutoHScroll = TRUE ;
-    DDExtraWidth = TRUE ;
-    Border = TRUE ;
-    Hide = TRUE ;
-};
-
 Menu RID_SVX_STYLE_MENU
 {
     ItemList =
commit 50a51edb6de06eb7615b2b3fdcdf1ee9e4db23fe
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Oct 7 17:51:52 2016 +0100

    no SpinFields are directly loaded from .src files now
    
    Change-Id: Ie9280d465e86b5f5b87ffd7b2944f3ed789724d1

diff --git a/include/vcl/spinfld.hxx b/include/vcl/spinfld.hxx
index 4e213e9..c22e67b 100644
--- a/include/vcl/spinfld.hxx
+++ b/include/vcl/spinfld.hxx
@@ -67,7 +67,6 @@ protected:
 
 public:
     explicit        SpinField( vcl::Window* pParent, WinBits nWinStyle );
-    explicit        SpinField( vcl::Window* pParent, const ResId& );
     virtual         ~SpinField() override;
     virtual void    dispose() override;
 
diff --git a/vcl/source/control/spinfld.cxx b/vcl/source/control/spinfld.cxx
index a0c1a03..49ad8ca 100644
--- a/vcl/source/control/spinfld.cxx
+++ b/vcl/source/control/spinfld.cxx
@@ -351,19 +351,6 @@ SpinField::SpinField(vcl::Window* pParent, WinBits nWinStyle) :
     ImplInit(pParent, nWinStyle);
 }
 
-SpinField::SpinField(vcl::Window* pParent, const ResId& rResId) :
-    Edit(WINDOW_SPINFIELD)
-{
-    ImplInitSpinFieldData();
-    rResId.SetRT(RSC_SPINFIELD);
-    WinBits nStyle = ImplInitRes(rResId);
-    ImplInit(pParent, nStyle);
-    ImplLoadRes(rResId);
-
-    if (!(nStyle & WB_HIDE))
-        Show();
-}
-
 SpinField::~SpinField()
 {
     disposeOnce();
commit 141a4ac1d21121a4e46470c797c6fce741151fee
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Oct 7 12:09:24 2016 +0100

    convert calc navigator to .ui format
    
    Change-Id: I74d718b128ea1d795ab01da1234f58cfe1852aff

diff --git a/extras/source/glade/libreoffice-catalog.xml.in b/extras/source/glade/libreoffice-catalog.xml.in
index 3f78445..ecb5b94 100644
--- a/extras/source/glade/libreoffice-catalog.xml.in
+++ b/extras/source/glade/libreoffice-catalog.xml.in
@@ -605,6 +605,13 @@
                         generic-name="Relative Numeric Field" parent="GtkSpinButton"
                         icon-name="widget-gtk-spinbutton"/>
 
+    <glade-widget-class title="Calc Row SpinButton" name="sclo-RowEdit"
+                        generic-name="Calc Row SpinButton" parent="GtkSpinButton"
+                        icon-name="widget-gtk-spinbutton"/>
+    <glade-widget-class title="Calc Column SpinButton" name="sclo-ColumnEdit"
+                        generic-name="Calc Column SpinButton" parent="GtkSpinButton"
+                        icon-name="widget-gtk-spinbutton"/>
+
     <glade-widget-class title="SvtURLBox" name="svtlo-SvtURLBox"
                         generic-name="URLBox" parent="VclComboBoxText"
                         icon-name="widget-gtk-comboboxtext"/>
diff --git a/sc/UIConfig_scalc.mk b/sc/UIConfig_scalc.mk
index b8e8c9c5..9ec5dac 100644
--- a/sc/UIConfig_scalc.mk
+++ b/sc/UIConfig_scalc.mk
@@ -149,6 +149,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/scalc,\
 	sc/uiconfig/scalc/ui/movecopysheet \
 	sc/uiconfig/scalc/ui/movingaveragedialog \
 	sc/uiconfig/scalc/ui/multipleoperationsdialog \
+	sc/uiconfig/scalc/ui/navigatorpanel \
 	sc/uiconfig/scalc/ui/nosolutiondialog \
 	sc/uiconfig/scalc/ui/optcalculatepage \
 	sc/uiconfig/scalc/ui/optchangespage \
diff --git a/sc/inc/helpids.h b/sc/inc/helpids.h
index 6c62861..7dfa4a6 100644
--- a/sc/inc/helpids.h
+++ b/sc/inc/helpids.h
@@ -32,27 +32,6 @@
 #define HID_SC_WIN_GRIDWIN                                      "SC_HID_SC_WIN_GRIDWIN"
 #define HID_SC_WIN_PREVIEW                                      "SC_HID_SC_WIN_PREVIEW"
 
-// Hilfe IDs fuer einzelne Controls (max.30) ---------------------------------
-//  Eintraege im Navigator
-#define HID_SC_NAVIPI_ENTRIES                                   "SC_HID_SC_NAVIPI_ENTRIES"
-#define HID_SC_NAVIPI_ROW                                       "SC_HID_SC_NAVIPI_ROW"
-#define HID_SC_NAVIPI_COL                                       "SC_HID_SC_NAVIPI_COL"
-#define HID_SC_NAVIPI_DOC                                       "SC_HID_SC_NAVIPI_DOC"
-#define HID_SC_NAVIPI_DATA                                      "SC_HID_SC_NAVIPI_DATA"
-#define HID_SC_NAVIPI_UP                                        "SC_HID_SC_NAVIPI_UP"
-#define HID_SC_NAVIPI_DOWN                                      "SC_HID_SC_NAVIPI_DOWN"
-#define HID_SC_NAVIPI_ZOOM                                      "SC_HID_SC_NAVIPI_ZOOM"
-#define HID_SC_NAVIPI_ROOT                                      "SC_HID_SC_NAVIPI_ROOT"
-#define HID_SC_NAVIPI_SCEN                                      "SC_HID_SC_NAVIPI_SCEN"
-#define HID_SC_NAVIPI_DROP                                      "SC_HID_SC_NAVIPI_DROP"
-
-#define HID_SC_NAVIPI_TOOLBOX                                   "SC_HID_SC_NAVIPI_TOOLBOX"
-//  Bereich ist voll!
-
-// Hilfe IDs fuer Dialoge / Pages (max.70) -----------------------------------
-#define HID_SC_NAVIGATOR                                        "SC_HID_SC_NAVIGATOR"
-
-
 #define HID_SC_HEADER_EDIT                                      "SC_HID_SC_HEADER_EDIT"
 #define HID_SC_FOOTER_EDIT                                      "SC_HID_SC_FOOTER_EDIT"
 
diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc
index 49f3dcf..31bd7d6 100644
--- a/sc/inc/sc.hrc
+++ b/sc/inc/sc.hrc
@@ -1051,7 +1051,6 @@
 #define RID_SCDLG_HFED_FOOTER   (SC_DIALOGS_START + 53)
 
 #define RID_SCPAGE_CALC         (SC_DIALOGS_START + 56)
-#define RID_SCDLG_NAVIGATOR     (SC_DIALOGS_START + 57)
 
 #define RID_SCDLG_HFEDIT_SHDR   (SC_DIALOGS_START + 62)
 #define RID_SCDLG_HFEDIT_SFTR   (SC_DIALOGS_START + 63)
diff --git a/sc/source/ui/inc/content.hxx b/sc/source/ui/inc/content.hxx
index 8e839c1..4c60d15 100644
--- a/sc/source/ui/inc/content.hxx
+++ b/sc/source/ui/inc/content.hxx
@@ -117,8 +117,8 @@ protected:
     virtual void        InitEntry(SvTreeListEntry*,const OUString&,const Image&,const Image&, SvLBoxButtonKind) override;
 
 public:
-            ScContentTree( vcl::Window* pParent, const ResId& rResId );
-            virtual ~ScContentTree() override;
+    ScContentTree(vcl::Window* pParent, ScNavigatorDlg* pNavigatorDlg);
+    virtual ~ScContentTree() override;
     virtual void dispose() override;
 
     OUString getAltLongDescText(SvTreeListEntry* pEntry, bool isAltText) const;
diff --git a/sc/source/ui/inc/navipi.hxx b/sc/source/ui/inc/navipi.hxx
index a7d6833..1c84934 100644
--- a/sc/source/ui/inc/navipi.hxx
+++ b/sc/source/ui/inc/navipi.hxx
@@ -28,6 +28,7 @@
 #include <svl/poolitem.hxx>
 #include <svl/lstner.hxx>
 #include <sfx2/childwin.hxx>
+#include <svx/sidebar/PanelLayout.hxx>
 #include "content.hxx"
 #include <svtools/svmedit.hxx>
 
@@ -46,12 +47,8 @@ class ScNavigatorSettings;
 
 enum NavListMode { NAV_LMODE_NONE       = 0x4000,
                    NAV_LMODE_AREAS      = 0x2000,
-                   NAV_LMODE_DBAREAS    = 0x1000,
-                   NAV_LMODE_DOCS       = 0x800,
                    NAV_LMODE_SCENARIOS  = 0x400 };
 
-// class ScScenarioListBox -----------------------------------------------
-
 class ScScenarioListBox : public ListBox
 {
 public:
@@ -89,38 +86,35 @@ private:
     ScenarioList        maEntries;
 };
 
-// class ScScenarioWindow ------------------------------------------------
-
 class ScScenarioWindow : public vcl::Window
 {
 public:
-            ScScenarioWindow( vcl::Window* pParent, const OUString& aQH_List, const OUString& aQH_Comment);
-            virtual ~ScScenarioWindow() override;
+    ScScenarioWindow(vcl::Window* pParent, const OUString& rQH_List, const OUString& rQH_Comment);
+    virtual ~ScScenarioWindow() override;
     virtual void dispose() override;
-
-    void    NotifyState( const SfxPoolItem* pState );
-    void    SetComment( const OUString& rComment )
-                { aEdComment->SetText( rComment ); }
-
-    void    SetSizePixel( const Size& rNewSize ) override;
+    void NotifyState(const SfxPoolItem* pState);
+    void SetComment(const OUString& rComment)
+    {
+        aEdComment->SetText(rComment);
+    }
 
 protected:
-
     virtual void    Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) override;
+    virtual void    Resize() override;
 
 private:
     VclPtr<ScScenarioListBox>   aLbScenario;
     VclPtr<MultiLineEdit>       aEdComment;
 };
 
-//  class ColumnEdit
-
 class ColumnEdit : public SpinField
 {
 public:
-            ColumnEdit( ScNavigatorDlg* pParent, const ResId& rResId );
-            virtual ~ColumnEdit() override;
-
+    ColumnEdit(Window* pParent, WinBits nWinBits);
+    void SetNavigatorDlg(ScNavigatorDlg *pNaviDlg)
+    {
+        xDlg = pNaviDlg;
+    }
     SCCOL   GetCol() { return nCol; }
     void    SetCol( SCCOL nColNo );
 
@@ -131,87 +125,63 @@ protected:
     virtual void    Down() override;
     virtual void    First() override;
     virtual void    Last() override;
+    virtual void    dispose() override;
 
 private:
-    ScNavigatorDlg& rDlg;
+    VclPtr<ScNavigatorDlg> xDlg;
     SCCOL           nCol;
 
-    void    EvalText        ();
-    void    ExecuteCol      ();
+    void EvalText();
+    void ExecuteCol();
     static SCCOL AlphaToNum    ( OUString& rStr );
     static SCCOL NumStrToAlpha ( OUString& rStr );
     static SCCOL NumToAlpha    ( SCCOL nColNo, OUString& rStr );
 };
 
-//  class RowEdit
-
 class RowEdit : public NumericField
 {
 public:
-            RowEdit( ScNavigatorDlg* pParent, const ResId& rResId );
-            virtual ~RowEdit() override;
-
-    SCROW   GetRow()                { return (SCROW)GetValue(); }
-    void    SetRow( SCROW nRow ){ SetValue( nRow ); }
+    RowEdit(Window* pParent, WinBits nWinBits);
+    void SetNavigatorDlg(ScNavigatorDlg *pNaviDlg)
+    {
+        xDlg = pNaviDlg;
+    }
+    SCROW   GetRow() { return (SCROW)GetValue(); }
+    void    SetRow(SCROW nRow) { SetValue(nRow); }
 
 protected:
     virtual bool    Notify( NotifyEvent& rNEvt ) override;
+    virtual Size    GetOptimalSize() const override;
     virtual void    LoseFocus() override;
+    virtual void    dispose() override;
 
 private:
-    ScNavigatorDlg& rDlg;
+    VclPtr<ScNavigatorDlg> xDlg;
 
     void    ExecuteRow();
 };
 
-//  class CommandToolBox
-
-class CommandToolBox : public ToolBox
-{
-public:
-            CommandToolBox( ScNavigatorDlg* pParent, const ResId& rResId );
-            virtual ~CommandToolBox() override;
-
-    void Select( sal_uInt16 nId );
-    void UpdateButtons();
-    void InitImageList();
-
-    virtual void    DataChanged( const DataChangedEvent& rDCEvt ) override;
-
-    DECL_LINK( ToolBoxDropdownClickHdl, ToolBox*, void );
-
-protected:
-    virtual void    Select() override;
-    virtual void    Click() override;
-
-private:
-    ScNavigatorDlg& rDlg;
-};
-
-//  class ScNavigatorDlg
-
-class ScNavigatorDlg : public vcl::Window, public SfxListener
+class ScNavigatorDlg : public PanelLayout, public SfxListener
 {
 friend class ScNavigatorControllerItem;
 friend class ScNavigatorDialogWrapper;
 friend class ColumnEdit;
 friend class RowEdit;
-friend class CommandToolBox;
 friend class ScContentTree;
 
 private:
     SfxBindings&        rBindings;      // must be first member
 
-    ImageList           aCmdImageList;  // must be before aTbxCmd
-    VclPtr<FixedText>        aFtCol;
-    VclPtr<ColumnEdit>       aEdCol;
-    VclPtr<FixedText>        aFtRow;
-    VclPtr<RowEdit>          aEdRow;
-    VclPtr<CommandToolBox>   aTbxCmd;
-    VclPtr<ScContentTree>    aLbEntries;
+    VclPtr<ColumnEdit> aEdCol;
+    VclPtr<RowEdit> aEdRow;
+    VclPtr<ToolBox> aTbxCmd;
+    VclPtr<VclContainer> aContentBox;
+    VclPtr<ScContentTree> aLbEntries;
+    VclPtr<VclContainer> aScenarioBox;
     VclPtr<ScScenarioWindow> aWndScenarios;
-    VclPtr<ListBox>          aLbDocuments;
+    VclPtr<ListBox> aLbDocuments;
 
+    Size            aExpandedSize;
     Idle            aContentIdle;
 
     OUString        aTitleBase;
@@ -222,29 +192,32 @@ private:
     OUString        aStrHidden;
     OUString        aStrActiveWin;
 
-    SfxChildWindowContext*  pContextWin;
-    Size                    aInitSize;
-    ScArea*                 pMarkArea;
-    ScViewData*             pViewData;
+    bool            bInSidebar;
+    sal_uInt16      nZoomId;
+    sal_uInt16      nChangeRootId;
+    sal_uInt16      nDragModeId;
+    sal_uInt16      nScenarioId;
+    sal_uInt16      nDownId;
+    sal_uInt16      nUpId;
+    sal_uInt16      nDataId;
+    sal_uInt16      nAreaId;
+    ScArea*         pMarkArea;
+    ScViewData*     pViewData;
 
-    long            nBorderOffset;
-    long            nListModeHeight;
-    long            nInitListHeight;
     NavListMode     eListMode;
     sal_uInt16      nDropMode;
     SCCOL           nCurCol;
     SCROW           nCurRow;
     SCTAB           nCurTab;
-    bool            bFirstBig;
-    bool mbUseStyleSettingsBackground;
 
     ScNavigatorControllerItem** ppBoundItems;
 
     DECL_LINK(TimeHdl, Idle*, void);
     DECL_LINK(DocumentSelectHdl, ListBox&, void);
+    DECL_LINK(ToolBoxSelectHdl, ToolBox*, void);
+    DECL_LINK(ToolBoxDropdownClickHdl, ToolBox*, void);
 
-    void    DoResize();
-
+    void    UpdateButtons();
     void    SetCurrentCell( SCCOL nCol, SCROW Row );
     void    SetCurrentCellStr( const OUString& rName );
     void    SetCurrentTable( SCTAB nTab );
@@ -263,9 +236,9 @@ private:
 
     void    GetDocNames(const OUString* pSelEntry);
 
-    void    SetListMode     ( NavListMode eMode, bool bSetSize );
-    void    ShowList        ( bool bShow, bool bSetSize );
-    void    ShowScenarios   ( bool bSetSize );
+    void    SetListMode(NavListMode eMode);
+    void    ShowList(bool bShow);
+    void    ShowScenarios();
 
     void    SetDropMode(sal_uInt16 nNew);
     sal_uInt16  GetDropMode() const         { return nDropMode; }
@@ -281,21 +254,13 @@ private:
 
     static void ReleaseFocus();
 
-protected:
-    virtual void    Resize() override;
-    virtual void    Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) override;
-    void            Resizing( Size& rSize );
-
 public:
-                ScNavigatorDlg( SfxBindings* pB, SfxChildWindowContext* pCW, vcl::Window* pParent,
-                    const bool bUseStyleSettingsBackground);
-                virtual ~ScNavigatorDlg() override;
+    ScNavigatorDlg(SfxBindings* pB, bool bSidebar, vcl::Window* pParent);
+    virtual ~ScNavigatorDlg() override;
     virtual void dispose() override;
 
     using Window::Notify;
     virtual void    Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
-
-    virtual void    DataChanged( const DataChangedEvent& rDCEvt ) override;
 };
 
 class ScNavigatorDialogWrapper: public SfxChildWindowContext
@@ -308,8 +273,6 @@ public:
 
     SFX_DECL_CHILDWINDOWCONTEXT(ScNavigatorDialogWrapper)
 
-    virtual void    Resizing( Size& rSize ) override;
-
 private:
     VclPtr<ScNavigatorDlg> pNavigator;
 };
diff --git a/sc/source/ui/navipi/content.cxx b/sc/source/ui/navipi/content.cxx
index dfc5e10..b309d59 100644
--- a/sc/source/ui/navipi/content.cxx
+++ b/sc/source/ui/navipi/content.cxx
@@ -49,9 +49,9 @@
 #include "lnktrans.hxx"
 #include "formulacell.hxx"
 #include "dociter.hxx"
+#include "sc.hrc"
 #include "scresid.hxx"
 #include "globstr.hrc"
-#include "navipi.hrc"
 #include "arealink.hxx"
 #include "navicfg.hxx"
 #include "navsett.hxx"
@@ -111,22 +111,20 @@ ScDocShell* ScContentTree::GetManualOrCurrent()
 
 //          ScContentTree
 
-ScContentTree::ScContentTree( vcl::Window* pParent, const ResId& rResId ) :
-    SvTreeListBox   ( pParent, rResId ),
-    aEntryImages    ( ScResId( RID_IMAGELIST_NAVCONT ) ),
-    nRootType       ( ScContentId::ROOT ),
-    bHiddenDoc      ( false ),
-    pHiddenDocument ( nullptr ),
-    bisInNavigatoeDlg  ( false )
+ScContentTree::ScContentTree(vcl::Window* pParent, ScNavigatorDlg* pNavigatorDlg)
+    : SvTreeListBox(pParent, WB_BORDER | WB_QUICK_SEARCH)
+    , pParentWindow(pNavigatorDlg)
+    , aEntryImages(ScResId(RID_IMAGELIST_NAVCONT))
+    , nRootType(ScContentId::ROOT)
+    , bHiddenDoc(false)
+    , pHiddenDocument(nullptr)
+    , bisInNavigatoeDlg(false)
 {
-    sal_uInt16 i;
-    for (i=0; i<=(int)ScContentId::LAST; i++)
+    for (sal_uInt16 i = 0; i <= (int)ScContentId::LAST; ++i)
         pPosList[pTypeList[i]] = i;         // invers zum suchen
 
-    pParentWindow = static_cast<ScNavigatorDlg*>(pParent);
-
     pRootNodes[ScContentId::ROOT] = nullptr;
-    for (i=1; i<(int)ScContentId::LAST; i++)
+    for (sal_uInt16 i = 1; i < (int)ScContentId::LAST; ++i)
         InitRoot((ScContentId)i);
 
     SetNodeDefaultImages();
@@ -134,8 +132,6 @@ ScContentTree::ScContentTree( vcl::Window* pParent, const ResId& rResId ) :
     SetDoubleClickHdl( LINK( this, ScContentTree, ContentDoubleClickHdl ) );
 
     pTmpEntry= nullptr;
-
-    SetStyle( GetStyle() | WB_QUICK_SEARCH );
 }
 
 ScContentTree::~ScContentTree()
diff --git a/sc/source/ui/navipi/navipi.cxx b/sc/source/ui/navipi/navipi.cxx
index 828885f..e01d9e2 100644
--- a/sc/source/ui/navipi/navipi.cxx
+++ b/sc/source/ui/navipi/navipi.cxx
@@ -26,6 +26,7 @@
 #include <sfx2/navigat.hxx>
 #include <svl/stritem.hxx>
 #include <svl/urlbmk.hxx>
+#include <vcl/builderfactory.hxx>
 #include <vcl/settings.hxx>
 #include <unotools/charclass.hxx>
 #include <stdlib.h>
@@ -38,20 +39,17 @@
 #include "rangenam.hxx"
 #include "rangeutl.hxx"
 #include "popmenu.hxx"
+#include "sc.hrc"
 #include "scresid.hxx"
 #include "scmod.hxx"
 #include "navicfg.hxx"
 #include "navcitem.hxx"
-#include "navipi.hrc"
 #include "navipi.hxx"
 #include "navsett.hxx"
 #include "markdata.hxx"
 
 #include <algorithm>
 
-//  tolerance, how much spac above the folded size is still small
-#define SCNAV_MINTOL        5
-
 //  maximum values for UI
 #define SCNAV_MAXCOL        (MAXCOLCOUNT)
 // macro is sufficient since only used in ctor
@@ -73,18 +71,17 @@ void ScNavigatorDlg::ReleaseFocus()
     }
 }
 
-//  class ColumnEdit
-
-ColumnEdit::ColumnEdit( ScNavigatorDlg* pParent, const ResId& rResId )
-    :   SpinField   ( pParent, rResId ),
-        rDlg        ( *pParent ),
-        nCol        ( 0 )
+ColumnEdit::ColumnEdit(Window* pParent, WinBits nWinBits)
+    : SpinField(pParent, nWinBits)
+    , nCol(0)
 {
-    SetMaxTextLen( SCNAV_COLDIGITS );   // 1...256...18278 or A...IV...ZZZ
+    SetMaxTextLen(SCNAV_COLDIGITS);   // 1...256...18278 or A...IV...ZZZ
 }
 
-ColumnEdit::~ColumnEdit()
+VCL_BUILDER_DECL_FACTORY(ColumnEdit)
 {
+    (void)rMap;
+    rRet = VclPtr<ColumnEdit>::Create(pParent, WB_BORDER | WB_SPIN | WB_REPEAT | WB_RIGHT);
 }
 
 bool ColumnEdit::Notify( NotifyEvent& rNEvt )
@@ -122,6 +119,12 @@ void ColumnEdit::LoseFocus()
     EvalText();
 }
 
+void ColumnEdit::dispose()
+{
+    xDlg.clear();
+    SpinField::dispose();
+}
+
 void ColumnEdit::Up()
 {
     nCol++;
@@ -172,12 +175,12 @@ void ColumnEdit::EvalText()
 
 void ColumnEdit::ExecuteCol()
 {
-    SCROW nRow = rDlg.aEdRow->GetRow();
+    SCROW nRow = xDlg->aEdRow->GetRow();
 
     EvalText(); // setzt nCol
 
     if ( (nCol > 0) && (nRow > 0) )
-        rDlg.SetCurrentCell( nCol-1, nRow-1 );
+        xDlg->SetCurrentCell(nCol - 1, nRow - 1);
 }
 
 void ColumnEdit::SetCol( SCCOL nColNo )
@@ -244,18 +247,17 @@ SCCOL ColumnEdit::NumToAlpha( SCCOL nColNo, OUString& rStr )
     return nColNo;
 }
 
-//  class RowEdit
-
-RowEdit::RowEdit( ScNavigatorDlg* pParent, const ResId& rResId )
-    :   NumericField( pParent, rResId ),
-        rDlg        ( *pParent )
+RowEdit::RowEdit(Window* pParent, WinBits nWinBits)
+    : NumericField(pParent, nWinBits)
 {
-    SetMax( SCNAV_MAXROW);
-    SetLast( SCNAV_MAXROW);
+    SetMax(SCNAV_MAXROW);
+    SetLast(SCNAV_MAXROW);
 }
 
-RowEdit::~RowEdit()
+VCL_BUILDER_DECL_FACTORY(RowEdit)
 {
+    (void)rMap;
+    rRet = VclPtr<RowEdit>::Create(pParent, WB_BORDER | WB_SPIN | WB_REPEAT | WB_RIGHT);
 }
 
 bool RowEdit::Notify( NotifyEvent& rNEvt )
@@ -281,13 +283,25 @@ void RowEdit::LoseFocus()
 {
 }
 
+void RowEdit::dispose()
+{
+    xDlg.clear();
+    NumericField::dispose();
+}
+
+Size RowEdit::GetOptimalSize() const
+{
+    //max rows is 1,000,000, which is too long for typical use
+    return CalcMinimumSizeForText("1,000");
+}
+
 void RowEdit::ExecuteRow()
 {
-    SCCOL nCol = rDlg.aEdCol->GetCol();
+    SCCOL nCol = xDlg->aEdCol->GetCol();
     SCROW nRow = (SCROW)GetValue();
 
     if ( (nCol > 0) && (nRow > 0) )
-        rDlg.SetCurrentCell( nCol-1, nRow-1 );
+        xDlg->SetCurrentCell(nCol - 1, nRow - 1);
 }
 
 IMPL_LINK(ScNavigatorDlg, DocumentSelectHdl, ListBox&, rListBox, void)
@@ -298,306 +312,180 @@ IMPL_LINK(ScNavigatorDlg, DocumentSelectHdl, ListBox&, rListBox, void)
     aLbEntries->SelectDoc(aDocName);
 }
 
-//  class CommandToolBox
-
-CommandToolBox::CommandToolBox( ScNavigatorDlg* pParent, const ResId& rResId )
-    :   ToolBox ( pParent, rResId ),
-        rDlg    ( *pParent )
-{
-    InitImageList();    // ImageList members of ScNavigatorDlg must be initialized before!
-
-    SetSizePixel( CalcWindowSizePixel() );
-    SetDropdownClickHdl( LINK(this, CommandToolBox, ToolBoxDropdownClickHdl) );
-    SetItemBits( IID_DROPMODE, GetItemBits( IID_DROPMODE ) | ToolBoxItemBits::DROPDOWNONLY );
-}
-
-CommandToolBox::~CommandToolBox()
-{
-}
-
-void CommandToolBox::Select( sal_uInt16 nSelId )
+IMPL_LINK(ScNavigatorDlg, ToolBoxSelectHdl, ToolBox*, pToolBox, void)
 {
+    sal_uInt16 nSelId = pToolBox->GetCurItemId();
     //  Modus umschalten ?
-
-    if ( nSelId == IID_ZOOMOUT || nSelId == IID_SCENARIOS )
+    if (nSelId == nZoomId || nSelId == nScenarioId)
     {
-        NavListMode eOldMode = rDlg.eListMode;
+        NavListMode eOldMode = eListMode;
         NavListMode eNewMode;
 
-        if ( nSelId == IID_SCENARIOS )
+        if (nSelId == nScenarioId)
         {
-            if ( eOldMode == NAV_LMODE_SCENARIOS )
+            if (eOldMode == NAV_LMODE_SCENARIOS)
                 eNewMode = NAV_LMODE_AREAS;
             else
                 eNewMode = NAV_LMODE_SCENARIOS;
         }
         else                                            // on/off
         {
-            if ( eOldMode == NAV_LMODE_NONE )
+            if (eOldMode == NAV_LMODE_NONE)
                 eNewMode = NAV_LMODE_AREAS;
             else
                 eNewMode = NAV_LMODE_NONE;
         }
-        rDlg.SetListMode( eNewMode, true );
+        SetListMode(eNewMode);
         UpdateButtons();
     }
     else
-        switch ( nSelId )
+    {
+        if (nSelId == nDataId)
+            MarkDataArea();
+        else if (nSelId == nUpId)
+            StartOfDataArea();
+        else if (nSelId == nDownId)
+            EndOfDataArea();
+        else if (nSelId == nChangeRootId)
         {
-            case IID_DATA:
-                rDlg.MarkDataArea();
-                break;
-            case IID_UP:
-                rDlg.StartOfDataArea();
-                break;
-            case IID_DOWN:
-                rDlg.EndOfDataArea();
-                break;
-            case IID_CHANGEROOT:
-                rDlg.aLbEntries->ToggleRoot();
-                UpdateButtons();
-                break;
+            aLbEntries->ToggleRoot();
+            UpdateButtons();
         }
+    }
 }
 
-void CommandToolBox::Select()
-{
-    Select( GetCurItemId() );
-}
-
-void CommandToolBox::Click()
-{
-}
-
-IMPL_LINK_NOARG(CommandToolBox, ToolBoxDropdownClickHdl, ToolBox *, void)
+IMPL_LINK(ScNavigatorDlg, ToolBoxDropdownClickHdl, ToolBox *, pToolBox, void)
 {
     // the popup menue of the drop modus has to be called in the
     // click (button down) and not in the select (button up)
-
-    if ( GetCurItemId() == IID_DROPMODE )
+    if (pToolBox->GetCurItemId() == nDragModeId)
     {
-        ScopedVclPtrInstance<ScPopupMenu> aPop( ScResId( RID_POPUP_DROPMODE ) );
-        aPop->CheckItem( RID_DROPMODE_URL + rDlg.GetDropMode() );
-        aPop->Execute( this, GetItemRect(IID_DROPMODE), PopupMenuFlags::ExecuteDown );
+        ScopedVclPtrInstance<ScPopupMenu> aPop(ScResId(RID_POPUP_DROPMODE));
+        aPop->CheckItem(RID_DROPMODE_URL + GetDropMode());
+        aPop->Execute(pToolBox, pToolBox->GetItemRect(nDragModeId), PopupMenuFlags::ExecuteDown);
         sal_uInt16 nId = aPop->GetSelected();
 
-        EndSelection();     // bevore SetDropMode (SetDropMode calls SetItemImage)
-
-        if ( nId >= RID_DROPMODE_URL && nId <= RID_DROPMODE_COPY )
-            rDlg.SetDropMode( nId - RID_DROPMODE_URL );
+        pToolBox->EndSelection();     // before SetDropMode (SetDropMode calls SetItemImage)
 
-        //  reset the highlighted button
-        Point aPoint;
-        MouseEvent aLeave( aPoint, 0, MouseEventModifiers::LEAVEWINDOW | MouseEventModifiers::SYNTHETIC );
-        MouseMove( aLeave );
+        if (nId >= RID_DROPMODE_URL && nId <= RID_DROPMODE_COPY)
+            SetDropMode(nId - RID_DROPMODE_URL);
     }
 }
 
-void CommandToolBox::UpdateButtons()
+void ScNavigatorDlg::UpdateButtons()
 {
-    NavListMode eMode = rDlg.eListMode;
-    CheckItem( IID_SCENARIOS,   eMode == NAV_LMODE_SCENARIOS );
-    CheckItem( IID_ZOOMOUT,     eMode != NAV_LMODE_NONE );
+    NavListMode eMode = eListMode;
+    aTbxCmd->CheckItem(nScenarioId, eMode == NAV_LMODE_SCENARIOS);
+    aTbxCmd->CheckItem(nZoomId, eMode != NAV_LMODE_NONE);
 
     //  Umschalten-Button:
-    if ( eMode == NAV_LMODE_SCENARIOS || eMode == NAV_LMODE_NONE )
+    if (eMode == NAV_LMODE_SCENARIOS || eMode == NAV_LMODE_NONE)
     {
-        EnableItem( IID_CHANGEROOT, false );
-        CheckItem( IID_CHANGEROOT, false );
+        aTbxCmd->EnableItem(nChangeRootId, false);
+        aTbxCmd->CheckItem(nChangeRootId, false);
     }
     else
     {
-        EnableItem( IID_CHANGEROOT );
-        bool bRootSet = rDlg.aLbEntries->GetRootType() != ScContentId::ROOT;
-        CheckItem( IID_CHANGEROOT, bRootSet );
+        aTbxCmd->EnableItem(nChangeRootId);
+        bool bRootSet = aLbEntries->GetRootType() != ScContentId::ROOT;
+        aTbxCmd->CheckItem(nChangeRootId, bRootSet);
     }
 
     sal_uInt16 nImageId = 0;
-    switch ( rDlg.nDropMode )
-    {
-        case SC_DROPMODE_URL:   nImageId = RID_IMG_DROP_URL;  break;
-        case SC_DROPMODE_LINK:  nImageId = RID_IMG_DROP_LINK; break;
-        case SC_DROPMODE_COPY:  nImageId = RID_IMG_DROP_COPY; break;
-    }
-    SetItemImage( IID_DROPMODE, Image(ScResId(nImageId)) );
-}
-
-void CommandToolBox::InitImageList()
-{
-    ImageList& rImgLst = rDlg.aCmdImageList;
-
-    sal_uInt16 nCount = GetItemCount();
-    for (sal_uInt16 i = 0; i < nCount; i++)
+    switch (nDropMode)
     {
-        sal_uInt16 nId = GetItemId(i);
-        SetItemImage( nId, rImgLst.GetImage( nId ) );
-    }
-}
-
-void CommandToolBox::DataChanged( const DataChangedEvent& rDCEvt )
-{
-    if ( rDCEvt.GetType() == DataChangedEventType::SETTINGS && (rDCEvt.GetFlags() & AllSettingsFlags::STYLE) )
-    {
-        //  update item images
-
-        InitImageList();
-        UpdateButtons();    // drop mode
+        case SC_DROPMODE_URL:
+            nImageId = RID_IMG_DROP_URL;
+            break;
+        case SC_DROPMODE_LINK:
+            nImageId = RID_IMG_DROP_LINK;
+            break;
+        case SC_DROPMODE_COPY:
+            nImageId = RID_IMG_DROP_COPY;
+            break;
     }
-
-    ToolBox::DataChanged( rDCEvt );
+    aTbxCmd->SetItemImage(nDragModeId, Image(ScResId(nImageId)));
 }
 
-//  class ScNavigatorSettings
-
 ScNavigatorSettings::ScNavigatorSettings() :
     mnRootSelected( ScContentId::ROOT ),
     mnChildSelected( SC_CONTENT_NOCHILD )
 {
 }
 
-//  class ScNavigatorDlgWrapper
-
 SFX_IMPL_CHILDWINDOWCONTEXT( ScNavigatorDialogWrapper, SID_NAVIGATOR )
 
-ScNavigatorDialogWrapper::ScNavigatorDialogWrapper(
-                                    vcl::Window*          pParent,
-                                    sal_uInt16           nId,
-                                    SfxBindings*     pBind,
-                                    SfxChildWinInfo* /* pInfo */ ) :
-        SfxChildWindowContext( nId )
+ScNavigatorDialogWrapper::ScNavigatorDialogWrapper(vcl::Window* pParent,
+                                                   sal_uInt16 nId,
+                                                   SfxBindings* pBind,
+                                                   SfxChildWinInfo* /* pInfo */)
+    : SfxChildWindowContext(nId)
 {
-    pNavigator = VclPtr<ScNavigatorDlg>::Create( pBind, this, pParent, true );
-    SetWindow( pNavigator );
-
-    //  handle configurations elsewhere,
-    //  only size of pInfo matters now
-
-    Size aInfoSize = pParent->GetOutputSizePixel();     // outside defined size
-    Size aNavSize = pNavigator->GetOutputSizePixel();   // Default-Size
-
-    aNavSize.Width()  = std::max( aInfoSize.Width(),  aNavSize.Width() );
-    aNavSize.Height() = std::max( aInfoSize.Height(), aNavSize.Height() );
-    pNavigator->nListModeHeight = std::max( aNavSize.Height(), pNavigator->nListModeHeight );
-
-    //  The size could be changed in another module,
-    //  therefore we have to or have not to display the content
-    //  in dependence of the current size
-
-    bool bSmall = ( aInfoSize.Height() <= pNavigator->aInitSize.Height() + SCNAV_MINTOL );
-    NavListMode eNavMode = NAV_LMODE_NONE;
-    if (!bSmall)
-    {
-        //  if scenario was active, switch on
-
-        ScNavipiCfg& rCfg = SC_MOD()->GetNavipiCfg();
-        NavListMode eLastMode = (NavListMode) rCfg.GetListMode();
-        if ( eLastMode == NAV_LMODE_SCENARIOS )
-            eNavMode = NAV_LMODE_SCENARIOS;
-        else
-            eNavMode = NAV_LMODE_AREAS;
-    }
-
-    // Do not set the size of the float again (sal_False at SetListMode), so that the
-    // navigator is not expanded, if it was minimized (#38872#).
-
-    pNavigator->SetListMode( eNavMode, false );     // FALSE: do not set the Float size
-
-    sal_uInt16 nCmdId;
-    switch (eNavMode)
-    {
-        case NAV_LMODE_SCENARIOS:   nCmdId = IID_SCENARIOS; break;
-        case NAV_LMODE_AREAS:       nCmdId = IID_AREAS;     break;
-// The following case can never be reach due to how eNavMode is set-up
-//        case NAV_LMODE_DOCS:        nCmdId = IID_DOCS;      break;
-//        case NAV_LMODE_DBAREAS:     nCmdId = IID_DBAREAS;   break;
-        default:                    nCmdId = 0;
-    }
-    if (nCmdId)
-    {
-        pNavigator->aTbxCmd->CheckItem( nCmdId );
-        pNavigator->DoResize();
-    }
-
-    pNavigator->bFirstBig = ( nCmdId == 0 );    // later
-}
-
-void ScNavigatorDialogWrapper::Resizing( Size& rSize )
-{
-    static_cast<ScNavigatorDlg*>(GetWindow())->Resizing(rSize);
+    pNavigator = VclPtr<ScNavigatorDlg>::Create(pBind, false, pParent);
+    if (SfxNavigator* pNav = dynamic_cast<SfxNavigator*>(pParent))
+        pNav->SetMinOutputSizePixel(pNavigator->GetOptimalSize());
+    SetWindow(pNavigator);
 }
 
-// class ScNavigatorPI
-
 #define CTRL_ITEMS 4
 
 #define REGISTER_SLOT(i,id) \
     ppBoundItems[i]=new ScNavigatorControllerItem(id,*this,rBindings);
 
-ScNavigatorDlg::ScNavigatorDlg( SfxBindings* pB, SfxChildWindowContext* pCW, vcl::Window* pParent,
-    const bool bUseStyleSettingsBackground) :
-        Window( pParent, ScResId(RID_SCDLG_NAVIGATOR) ),
-        rBindings   ( *pB ),                                // is used in CommandToolBox ctor
-        aCmdImageList( ScResId( IL_CMD ) ),
-        aFtCol      ( VclPtr<FixedText>::Create( this, ScResId( FT_COL ) ) ),
-        aEdCol      ( VclPtr<ColumnEdit>::Create( this, ScResId( ED_COL ) ) ),
-        aFtRow      ( VclPtr<FixedText>::Create( this, ScResId( FT_ROW ) ) ),
-        aEdRow      ( VclPtr<RowEdit>::Create( this, ScResId( ED_ROW ) ) ),
-        aTbxCmd     ( VclPtr<CommandToolBox>::Create( this, ScResId( TBX_CMD ) ) ),
-        aLbEntries  ( VclPtr<ScContentTree>::Create( this, ScResId( LB_ENTRIES ) ) ),
-        aWndScenarios( VclPtr<ScScenarioWindow>::Create( this,ScResId( SCSTR_QHLP_SCEN_LISTBOX), ScResId(SCSTR_QHLP_SCEN_COMMENT)) ),
-        aLbDocuments( VclPtr<ListBox>::Create( this, ScResId( LB_DOCUMENTS ) ) ),
-        aStrDragMode ( ScResId( SCSTR_DRAGMODE ) ),
-        aStrDisplay  ( ScResId( SCSTR_DISPLAY ) ),
-        aStrActiveWin( ScResId( SCSTR_ACTIVEWIN ) ),
-        pContextWin ( pCW ),
-        pMarkArea   ( nullptr ),
-        pViewData   ( nullptr ),
-        nListModeHeight( 0 ),
-        nInitListHeight( 0 ),
-        eListMode   ( NAV_LMODE_NONE ),
-        nDropMode   ( SC_DROPMODE_URL ),
-        nCurCol     ( 0 ),
-        nCurRow     ( 0 ),
-        nCurTab     ( 0 ),
-        bFirstBig   ( false ),
-        mbUseStyleSettingsBackground(bUseStyleSettingsBackground)
-{
+ScNavigatorDlg::ScNavigatorDlg(SfxBindings* pB, bool bSidebar, vcl::Window* pParent)
+    : PanelLayout(pParent, "NavigatorPanel", "modules/scalc/ui/navigatorpanel.ui", nullptr)
+    , rBindings(*pB)
+    , aStrDragMode(ScResId(SCSTR_DRAGMODE))
+    , aStrDisplay(ScResId(SCSTR_DISPLAY))
+    , aStrActiveWin(ScResId(SCSTR_ACTIVEWIN))
+    , bInSidebar(bSidebar)
+    , pMarkArea(nullptr)
+    , pViewData(nullptr )
+    , eListMode(NAV_LMODE_NONE)
+    , nDropMode(SC_DROPMODE_URL)
+    , nCurCol(0)
+    , nCurRow(0)
+    , nCurTab(0)
+{
+    get(aLbDocuments, "documents");
+    get(aEdCol, "column");
+    get(aEdRow, "row");
+    get(aTbxCmd, "toolbox");
+    aTbxCmd->SetSelectHdl(LINK(this, ScNavigatorDlg, ToolBoxSelectHdl));
+    aTbxCmd->SetDropdownClickHdl(LINK(this, ScNavigatorDlg, ToolBoxDropdownClickHdl));
+    nZoomId = aTbxCmd->GetItemId("contents");
+    nChangeRootId = aTbxCmd->GetItemId("toggle");
+    nDragModeId = aTbxCmd->GetItemId("dragmode");
+    aTbxCmd->SetItemBits(nDragModeId, aTbxCmd->GetItemBits(nDragModeId) | ToolBoxItemBits::DROPDOWNONLY);
+    nScenarioId = aTbxCmd->GetItemId("scenarios");
+    nDownId = aTbxCmd->GetItemId("end");
+    nUpId = aTbxCmd->GetItemId("start");
+    nAreaId = aTbxCmd->GetItemId("datarange");
+    get(aContentBox, "contentbox");
+    aLbEntries = VclPtr<ScContentTree>::Create(aContentBox, this);
+    aLbEntries->set_hexpand(true);
+    aLbEntries->set_vexpand(true);
+    aLbEntries->Show();
+    get(aScenarioBox, "scenariobox");
+    aWndScenarios = VclPtr<ScScenarioWindow>::Create(aScenarioBox,
+        ScResId(SCSTR_QHLP_SCEN_LISTBOX), ScResId(SCSTR_QHLP_SCEN_COMMENT));
+    aWndScenarios->set_hexpand(true);
+    aWndScenarios->set_vexpand(true);
+    aWndScenarios->Show();
+
     ScNavipiCfg& rCfg = SC_MOD()->GetNavipiCfg();
     nDropMode = rCfg.GetDragMode();
-    //  eListMode is set from outside, Root further below
 
+    aTbxCmd->InsertBreak(3);
+    aTbxCmd->SetLineCount(2);
     aLbDocuments->SetDropDownLineCount(9);
     aLbDocuments->SetSelectHdl(LINK(this, ScNavigatorDlg, DocumentSelectHdl));
-    aStrActive    = " ("
-                  + OUString( ScResId( SCSTR_ACTIVE ) )
-                  + ")";                                      // " (active)"
-    aStrNotActive = " ("
-                  + OUString( ScResId( SCSTR_NOTACTIVE ) )
-                  + ")";                                   // " (not active)"
-    aStrHidden    = " ("
-                  + OUString( ScResId( SCSTR_HIDDEN ) )
-                  + ")";                                      // " (hidden)"
+    aStrActive    = " (" + OUString(ScResId(SCSTR_ACTIVE)) + ")";     // " (active)"
+    aStrNotActive = " (" + OUString(ScResId(SCSTR_NOTACTIVE)) + ")";  // " (not active)"
+    aStrHidden    = " (" + OUString(ScResId(SCSTR_HIDDEN)) + ")";     // " (hidden)"
 
     aTitleBase = GetText();
 
-    const long nListboxYPos =
-        ::std::max(
-            (aTbxCmd->GetPosPixel().Y() + aTbxCmd->GetSizePixel().Height()),
-            (aEdRow->GetPosPixel().Y() + aEdRow->GetSizePixel().Height()) )
-        + 4;
-    aLbEntries->setPosSizePixel( 0, nListboxYPos, 0, 0, PosSizeFlags::Y);
-
-    nBorderOffset = aLbEntries->GetPosPixel().X();
-
-    aInitSize.Width()  =  aTbxCmd->GetPosPixel().X()
-                        + aTbxCmd->GetSizePixel().Width()
-                        + nBorderOffset;
-    aInitSize.Height() = aLbEntries->GetPosPixel().Y();
-
-    nInitListHeight = aLbEntries->GetSizePixel().Height();
-    nListModeHeight =  aInitSize.Height()
-                     + nInitListHeight;
-
     ppBoundItems = new ScNavigatorControllerItem* [CTRL_ITEMS];
 
     rBindings.ENTERREGISTRATIONS();
@@ -612,8 +500,6 @@ ScNavigatorDlg::ScNavigatorDlg( SfxBindings* pB, SfxChildWindowContext* pCW, vcl
     StartListening( *(SfxGetpApp()) );
     StartListening( rBindings );
 
-    aLbDocuments->Hide();        // does not exist at NAV_LMODE_NONE
-
     aLbEntries->InitWindowBits(true);
 
     aLbEntries->SetSpaceBetweenEntries(0);
@@ -630,34 +516,35 @@ ScNavigatorDlg::ScNavigatorDlg( SfxBindings* pB, SfxChildWindowContext* pCW, vcl
     aLbEntries->Refresh();
     GetDocNames(nullptr);
 
-    aTbxCmd->UpdateButtons();
+    UpdateButtons();
 
     UpdateColumn();
     UpdateRow();
     UpdateTable(nullptr);
-    aLbEntries->Hide();
-    aWndScenarios->Hide();
-    aWndScenarios->SetPosPixel( aLbEntries->GetPosPixel() );
+    aContentBox->Hide();
+    aScenarioBox->Hide();
 
     aContentIdle.SetIdleHdl( LINK( this, ScNavigatorDlg, TimeHdl ) );
     aContentIdle.SetPriority( SchedulerPriority::LOWEST );
 
-    FreeResource();
-
-    aLbEntries->SetAccessibleRelationLabeledBy(aLbEntries.get());
-    aTbxCmd->SetAccessibleRelationLabeledBy(aTbxCmd.get());
-    aLbDocuments->SetAccessibleName(aStrActiveWin);
-
-    if (pContextWin == nullptr)
+    if (bInSidebar)
     {
-        // When the context window is missing then the navigator is
-        // displayed in the sidebar and has the whole deck to fill.
-        // Therefore hide the button that hides all controls below the
-        // top two rows of buttons.
-        aTbxCmd->Select(IID_ZOOMOUT);
-        aTbxCmd->RemoveItem(aTbxCmd->GetItemPos(IID_ZOOMOUT));
+        // When the navigator is displayed in the sidebar it has the whole deck
+        // to fill. Therefore hide the button that hides all controls below
+        // the top two rows of buttons.
+        aTbxCmd->RemoveItem(aTbxCmd->GetItemPos(nZoomId));
     }
     aLbEntries->SetNavigatorDlgFlag(true);
+
+    // if scenario was active, switch on
+    NavListMode eNavMode = (NavListMode) rCfg.GetListMode();
+    if (eNavMode == NAV_LMODE_SCENARIOS)
+        aTbxCmd->CheckItem(nScenarioId);
+    else
+        eNavMode = NAV_LMODE_AREAS;
+    SetListMode(eNavMode);
+
+    aExpandedSize = GetOptimalSize();
 }
 
 ScNavigatorDlg::~ScNavigatorDlg()
@@ -669,8 +556,7 @@ void ScNavigatorDlg::dispose()
 {
     aContentIdle.Stop();
 
-    sal_uInt16 i;
-    for ( i=0; i<CTRL_ITEMS; i++ )
+    for (sal_uInt16 i = 0; i < CTRL_ITEMS; ++i)
         delete ppBoundItems[i];
 
     delete [] ppBoundItems;
@@ -679,137 +565,23 @@ void ScNavigatorDlg::dispose()
     EndListening( *(SfxGetpApp()) );
     EndListening( rBindings );
 
-    aFtCol.disposeAndClear();
-    aEdCol.disposeAndClear();
-    aFtRow.disposeAndClear();
-    aEdRow.disposeAndClear();
-    aTbxCmd.disposeAndClear();
+    aEdCol.clear();
+    aEdRow.clear();
+    aTbxCmd.clear();
     aLbEntries.disposeAndClear();
+    aContentBox.clear();
     aWndScenarios.disposeAndClear();
-    aLbDocuments.disposeAndClear();
-    vcl::Window::dispose();
-}
-
-void ScNavigatorDlg::Resizing( Size& rNewSize )  // Size = Outputsize?
-{
-    FloatingWindow* pFloat = pContextWin!=nullptr ? pContextWin->GetFloatingWindow() : nullptr;
-    if ( pFloat )
-    {
-        Size aMinOut = pFloat->GetMinOutputSizePixel();
-
-        if ( rNewSize.Width() < aMinOut.Width() )
-            rNewSize.Width() = aMinOut.Width();
-
-        if ( eListMode == NAV_LMODE_NONE )
-            rNewSize.Height() = aInitSize.Height();
-        else
-        {
-            if ( rNewSize.Height() < aMinOut.Height() )
-                rNewSize.Height() = aMinOut.Height();
-        }
-    }
-}
-
-void ScNavigatorDlg::Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect )
-{
-    if (mbUseStyleSettingsBackground)
-    {
-        const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
-        Color aBgColor = rStyleSettings.GetFaceColor();
-        Wallpaper aBack( aBgColor );
-
-        SetBackground( aBack );
-        aFtCol->SetBackground( aBack );
-        aFtRow->SetBackground( aBack );
-    }
-    else
-    {
-        aFtCol->SetBackground(Wallpaper());
-        aFtRow->SetBackground(Wallpaper());
-    }
-
-    Window::Paint(rRenderContext, rRect);
-}
-
-void ScNavigatorDlg::DataChanged( const DataChangedEvent& rDCEvt )
-{
-    if ( rDCEvt.GetType() == DataChangedEventType::SETTINGS && (rDCEvt.GetFlags() & AllSettingsFlags::STYLE) )
-    {
-        //  toolbox images are exchanged in CommandToolBox::DataChanged
-        Invalidate();
-    }
-
-    Window::DataChanged( rDCEvt );
-}
-
-void ScNavigatorDlg::Resize()
-{
-    DoResize();
-}
-
-void ScNavigatorDlg::DoResize()
-{
-    Size aNewSize = GetOutputSizePixel();
-    long nTotalHeight = aNewSize.Height();
-
-    //  if the navigator is docked, the window is probably at first small generated,
-    //  then there is a resize to the actual size -> switch on content
-
-    bool bSmall = ( nTotalHeight <= aInitSize.Height() + SCNAV_MINTOL );
-    if ( !bSmall && bFirstBig )
-    {
-        //  Switch on content again as described in the config
-
-        bFirstBig = false;
-        NavListMode eNavMode = NAV_LMODE_AREAS;
-        ScNavipiCfg& rCfg = SC_MOD()->GetNavipiCfg();
-        NavListMode eLastMode = (NavListMode) rCfg.GetListMode();
-        if ( eLastMode == NAV_LMODE_SCENARIOS )
-            eNavMode = NAV_LMODE_SCENARIOS;
-        SetListMode( eNavMode, false );         // FALSE: do not set the Float size
-    }
-
-    //  even if the content is not visible, adapt the size,
-    //  so the width fit
-
-    Point aEntryPos = aLbEntries->GetPosPixel();
-    Point aListPos = aLbDocuments->GetPosPixel();
-    aNewSize.Width() -= 2*nBorderOffset;
-    Size aDocSize = aLbDocuments->GetSizePixel();
-    aDocSize.Width() = aNewSize.Width();
-
-    if(!bSmall)
-    {
-
-        long nListHeight = aLbDocuments->GetSizePixel().Height();
-        aNewSize.Height() -= ( aEntryPos.Y() + nListHeight + 2*nBorderOffset );
-        if(aNewSize.Height()<0) aNewSize.Height()=0;
-
-        aListPos.Y() = aEntryPos.Y() + aNewSize.Height() + nBorderOffset;
-
-        if(aListPos.Y() > aLbEntries->GetPosPixel().Y())
-                            aLbDocuments->SetPosPixel( aListPos );
-
-    }
-    aLbEntries->SetSizePixel( aNewSize );
-    aWndScenarios->SetSizePixel( aNewSize );
-    aLbDocuments->SetSizePixel( aDocSize );
-
-    bool bListMode = (eListMode != NAV_LMODE_NONE);
-    if (pContextWin != nullptr)
-    {
-        FloatingWindow* pFloat = pContextWin->GetFloatingWindow();
-        if ( pFloat && bListMode )
-            nListModeHeight = nTotalHeight;
-    }
+    aScenarioBox.clear();
+    aLbDocuments.clear();
+    PanelLayout::dispose();
 }
 
 void ScNavigatorDlg::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( dynamic_cast<const SfxEventHint*>(&rHint) )
+    if (const SfxEventHint* pHint = dynamic_cast<const SfxEventHint*>(&rHint))
     {
-        sal_uLong nEventId = static_cast<const SfxEventHint&>(rHint).GetEventId();
-        if ( nEventId == SFX_EVENT_ACTIVATEDOC )
+        sal_uLong nEventId = pHint->GetEventId();
+        if (nEventId == SFX_EVENT_ACTIVATEDOC)
         {
             aLbEntries->ActiveDocChanged();
             UpdateAll();
@@ -819,11 +591,11 @@ void ScNavigatorDlg::Notify( SfxBroadcaster&, const SfxHint& rHint )
     {
         const sal_uInt32 nHintId = rHint.GetId();
 
-        if ( nHintId == SC_HINT_DOCNAME_CHANGED )
+        if (nHintId == SC_HINT_DOCNAME_CHANGED)
         {
             aLbEntries->ActiveDocChanged();
         }
-        else if ( NAV_LMODE_NONE == eListMode )
+        else if (NAV_LMODE_NONE == eListMode)
         {
             //  Table not any more
         }
@@ -886,8 +658,7 @@ IMPL_LINK( ScNavigatorDlg, TimeHdl, Idle*, pIdle, void )
 void ScNavigatorDlg::SetDropMode(sal_uInt16 nNew)
 {
     nDropMode = nNew;
-    aTbxCmd->UpdateButtons();
-
+    UpdateButtons();
     ScNavipiCfg& rCfg = SC_MOD()->GetNavipiCfg();
     rCfg.SetDragMode(nDropMode);
 }
@@ -1047,18 +818,14 @@ void ScNavigatorDlg::UpdateTable( const SCTAB* pTab )
 
 void ScNavigatorDlg::UpdateAll()
 {
-    switch ( eListMode )
+    switch (eListMode)
     {
-        case NAV_LMODE_DOCS:
-        case NAV_LMODE_DBAREAS:
         case NAV_LMODE_AREAS:
             aLbEntries->Refresh();
             break;
-
         case NAV_LMODE_NONE:
             //! ???
             break;
-
         default:
             break;
     }
@@ -1066,122 +833,76 @@ void ScNavigatorDlg::UpdateAll()
     aContentIdle.Stop();       // not again
 }
 
-void ScNavigatorDlg::SetListMode( NavListMode eMode, bool bSetSize )
+void ScNavigatorDlg::SetListMode(NavListMode eMode)
 {
-    if ( eMode != eListMode )
+    if (eMode != eListMode)
     {
-        if ( eMode != NAV_LMODE_NONE )
-            bFirstBig = false;              // do not switch automatically any more
+        bool bForceParentResize = (eMode == NAV_LMODE_NONE || eListMode == NAV_LMODE_NONE);
+        SfxNavigator* pNav = bForceParentResize ? dynamic_cast<SfxNavigator*>(GetParent()) : nullptr;
+        if (pNav && eMode == NAV_LMODE_NONE) //save last normal size on minimizing
+            aExpandedSize = GetSizePixel();
 
         eListMode = eMode;
 
-        switch ( eMode )
+        switch (eMode)
         {
             case NAV_LMODE_NONE:
-                ShowList( false, bSetSize );
+                ShowList(false);
                 break;
-
             case NAV_LMODE_AREAS:
-            case NAV_LMODE_DBAREAS:
-            case NAV_LMODE_DOCS:
                 aLbEntries->Refresh();
-                ShowList( true, bSetSize );
+                ShowList(true);
                 break;
-
             case NAV_LMODE_SCENARIOS:
-                ShowScenarios( bSetSize );
+                ShowScenarios();
                 break;
         }
 
-        aTbxCmd->UpdateButtons();
+        UpdateButtons();
 
-        if ( eMode != NAV_LMODE_NONE )
+        if (eMode != NAV_LMODE_NONE)
         {
             ScNavipiCfg& rCfg = SC_MOD()->GetNavipiCfg();
             rCfg.SetListMode( (sal_uInt16) eMode );
         }
+
+        if (pNav)
+        {
+            Size aOptimalSize(GetOptimalSize());
+            Size aNewSize(pNav->GetOutputSizePixel());
+            aNewSize.Height() = eMode == NAV_LMODE_NONE ? aOptimalSize.Height() : aExpandedSize.Height();
+            pNav->SetMinOutputSizePixel(aOptimalSize);
+            pNav->SetOutputSizePixel(aNewSize);
+        }
     }
 
-    if ( pMarkArea )
+    if (pMarkArea)
         UnmarkDataArea();
 }
 
-void ScNavigatorDlg::ShowList( bool bShow, bool bSetSize )
+void ScNavigatorDlg::ShowList(bool bShow)
 {
-    FloatingWindow* pFloat = pContextWin!=nullptr ? pContextWin->GetFloatingWindow() : nullptr;
-    Size aSize = GetParent()->GetOutputSizePixel();
-
-    if ( bShow )
+    if (bShow)
     {
-        Size aMinSize = aInitSize;
-
-        aMinSize.Height() += nInitListHeight;
-        if ( pFloat )
-            pFloat->SetMinOutputSizePixel( aMinSize );
-        aSize.Height() = nListModeHeight;
-        aLbEntries->Show();
+        aContentBox->Show();
         aLbDocuments->Show();
     }
     else
     {
-        if ( pFloat )
-        {
-            pFloat->SetMinOutputSizePixel( aInitSize );
-            nListModeHeight = aSize.Height();
-        }
-        aSize.Height() = aInitSize.Height();
-        aLbEntries->Hide();
+        aContentBox->Hide();
         aLbDocuments->Hide();
     }
-    aWndScenarios->Hide();
-
-    if ( pFloat )
-    {
-        if ( bSetSize )
-            pFloat->SetOutputSizePixel( aSize );
-    }
-    else
-    {
-        SfxNavigator* pNav = dynamic_cast<SfxNavigator*>(GetParent());
-        if (pNav != nullptr)
-        {
-            Size aFloating = pNav->GetFloatingSize();
-            aFloating.Height() = aSize.Height();
-            pNav->SetFloatingSize( aFloating );
-        }
-    }
+    aScenarioBox->Hide();
 }
 
-void ScNavigatorDlg::ShowScenarios( bool bSetSize )
+void ScNavigatorDlg::ShowScenarios()
 {
-    FloatingWindow* pFloat = pContextWin!=nullptr ? pContextWin->GetFloatingWindow() : nullptr;
-    Size aSize = GetParent()->GetOutputSizePixel();
-
-    Size aMinSize = aInitSize;
-    aMinSize.Height() += nInitListHeight;
-    if ( pFloat )
-        pFloat->SetMinOutputSizePixel( aMinSize );
-    aSize.Height() = nListModeHeight;
-
     rBindings.Invalidate( SID_SELECT_SCENARIO );
     rBindings.Update( SID_SELECT_SCENARIO );
 
-    aWndScenarios->Show();
+    aScenarioBox->Show();
     aLbDocuments->Show();
-    aLbEntries->Hide();
-
-    if ( pFloat )
-    {
-        if ( bSetSize )
-            pFloat->SetOutputSizePixel( aSize );
-    }
-    else
-    {
-        SfxNavigator* pNav = static_cast<SfxNavigator*>(GetParent());
-        Size aFloating = pNav->GetFloatingSize();
-        aFloating.Height() = aSize.Height();
-        pNav->SetFloatingSize( aFloating );
-    }
+    aContentBox->Hide();
 }
 
 //      documents for Dropdown-Listbox
@@ -1266,7 +987,7 @@ void ScNavigatorDlg::UnmarkDataArea()
 
 void ScNavigatorDlg::CheckDataArea()
 {
-    if ( aTbxCmd->IsItemChecked( IID_DATA ) && pMarkArea )
+    if (aTbxCmd->IsItemChecked(nDataId) && pMarkArea)
     {
         if (   nCurTab   != pMarkArea->nTab
             || nCurCol <  pMarkArea->nColStart+1
@@ -1274,8 +995,8 @@ void ScNavigatorDlg::CheckDataArea()
             || nCurRow <  pMarkArea->nRowStart+1
             || nCurRow >  pMarkArea->nRowEnd+1 )
         {
-            aTbxCmd->SetItemState( IID_DATA, TriState(TRISTATE_TRUE) );
-            aTbxCmd->Select( IID_DATA );
+            aTbxCmd->SetItemState(nDataId, TriState(TRISTATE_TRUE));
+            aTbxCmd->TriggerItem(nDataId);
         }
     }
 }
diff --git a/sc/source/ui/navipi/navipi.hrc b/sc/source/ui/navipi/navipi.hrc
deleted file mode 100644
index 76e1eb6..0000000
--- a/sc/source/ui/navipi/navipi.hrc
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-#include "sc.hrc"
-
-#define FT_ROW                  1
-#define ED_ROW                  2
-#define FT_COL                  3
-#define ED_COL                  4
-#define LB_DOCUMENTS            5
-#define LB_ENTRIES              6
-#define TBX_CMD                 7
-#define IL_CMD                  8
-
-#define IID_AREAS       1
-#define IID_DBAREAS     2
-#define IID_DATA        3
-#define IID_DOCS        4
-#define IID_UP          5
-#define IID_DOWN        6
-#define IID_SCENARIOS   7
-#define IID_DROPMODE    9
-#define IID_CHANGEROOT  10
-#define IID_ZOOMOUT     11
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/navipi/navipi.src b/sc/source/ui/navipi/navipi.src
index b7f1ddc..90e73f9 100644
--- a/sc/source/ui/navipi/navipi.src
+++ b/sc/source/ui/navipi/navipi.src
@@ -17,148 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include "navipi.hrc"
-
-Window RID_SCDLG_NAVIGATOR
-{
-    SVLook = TRUE ;
-    HelpId = HID_SC_NAVIGATOR ;
-    Size = MAP_APPFONT ( 115 , 116 ) ;
-    OutputSize = TRUE ;
-    DialogControl = TRUE ;
-    Hide = TRUE ;
-    Text [ en-US ] = "Navigator" ;
-    FixedText FT_ROW
-    {
-        Pos = MAP_APPFONT ( 2 , 19 ) ;
-         // an kleinere Toolbox-Bitmaps angepasst
-        Size = MAP_APPFONT ( 19 , 10 ) ;
-        Text [ en-US ] = "Row" ;
-    };
-    NumericField ED_ROW
-    {
-        HelpId = HID_SC_NAVIPI_ROW ;
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 31 , 18 ) ;
-         // an kleinere Toolbox-Bitmaps angepasst
-        Size = MAP_APPFONT ( 30 , 12 ) ;
-        Right = TRUE ;
-        Repeat = TRUE ;
-        Spin = TRUE ;
-        SpinSize = 1 ;
-        Minimum = 1 ;
-        First = 1 ;
-        QuickHelpText [ en-US ] = "Row" ;
-    };
-    FixedText FT_COL
-    {
-        Pos = MAP_APPFONT ( 2 , 5 ) ;
-        Size = MAP_APPFONT ( 23 , 10 ) ;
-        Text [ en-US ] = "Column" ;
-    };
-    SpinField ED_COL
-    {
-        HelpId = HID_SC_NAVIPI_COL ;
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 31 , 4 ) ;
-        Size = MAP_APPFONT ( 30 , 12 ) ;
-        Right = TRUE ;
-        Repeat = TRUE ;
-        Spin = TRUE ;
-        QuickHelpText [ en-US ] = "Column" ;
-    };
-    Control LB_ENTRIES
-    {
-         // "Control" braucht immer eigene HelpId
-        HelpId = HID_SC_NAVIPI_ENTRIES ;
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 2 , 35 ) ;
-        Size = MAP_APPFONT ( 110 , 100 ) ;
-        TabStop = TRUE ;
-    };
-    ListBox LB_DOCUMENTS
-    {
-        HelpId = HID_SC_NAVIPI_DOC ;
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 2 , 89 ) ;
-        Size = MAP_APPFONT ( 82 , 50 ) ;
-        TabStop = TRUE ;
-        DropDown = TRUE ;
-        QuickHelpText [ en-US ] = "Document" ;
-    };
-    ImageList IL_CMD
-    {
-        Prefix = "na";
-        IdList =
-        {
-            IID_DATA ;
-            IID_UP ;
-            IID_DOWN ;
-            IID_SCENARIOS ;
-            IID_DROPMODE ;
-            IID_CHANGEROOT ;
-            IID_ZOOMOUT ;
-        };
-        IdCount = { 8 ; };
-    };
-    ToolBox TBX_CMD
-    {
-        Pos = MAP_APPFONT ( 66 , 3 ) ;
-        HelpId = HID_SC_NAVIPI_TOOLBOX ;
-        SVLook = TRUE ;
-        Border = FALSE ;
-        LineCount = 2 ;
-        ItemList =
-        {
-            ToolBoxItem
-            {
-                Identifier = IID_DATA ;
-                HelpId = HID_SC_NAVIPI_DATA ;
-                Text [ en-US ] = "Data Range" ;
-            };
-            ToolBoxItem
-            {
-                Identifier = IID_UP ;
-                HelpId = HID_SC_NAVIPI_UP ;
-                Text [ en-US ] = "Start" ;
-            };
-            ToolBoxItem
-            {
-                Identifier = IID_DOWN ;
-                HelpId = HID_SC_NAVIPI_DOWN ;
-                Text [ en-US ] = "End" ;
-            };
-
-            ToolBoxItem { Type = TOOLBOXITEM_BREAK ; };
-
-            ToolBoxItem
-            {
-                Identifier = IID_ZOOMOUT ;
-                HelpId = HID_SC_NAVIPI_ZOOM ;
-                Text [ en-US ] = "Contents" ;
-            };
-            ToolBoxItem
-            {
-                Identifier = IID_CHANGEROOT ;
-                HelpId = HID_SC_NAVIPI_ROOT ;
-                Text [ en-US ] = "Toggle" ;
-            };
-            ToolBoxItem
-            {
-                Identifier = IID_SCENARIOS ;
-                HelpId = HID_SC_NAVIPI_SCEN ;
-                Text [ en-US ] = "Scenarios" ;
-            };
-            ToolBoxItem
-            {
-                Identifier = IID_DROPMODE ;
-                HelpId = HID_SC_NAVIPI_DROP ;
-                DropDown = TRUE ;
-                Text [ en-US ] = "Drag Mode" ;
-            };
-        };
-    };
-};
+#include "sc.hrc"
 
 ImageList RID_IMAGELIST_NAVCONT
 {
diff --git a/sc/source/ui/navipi/scenwnd.cxx b/sc/source/ui/navipi/scenwnd.cxx
index c5976d9..9c6884b 100644
--- a/sc/source/ui/navipi/scenwnd.cxx
+++ b/sc/source/ui/navipi/scenwnd.cxx
@@ -274,18 +274,18 @@ void ScScenarioWindow::NotifyState( const SfxPoolItem* pState )
     }
 }
 
-void ScScenarioWindow::SetSizePixel( const Size& rNewSize )
+void ScScenarioWindow::Resize()
 {
-    Size aSize( rNewSize );
-    long nHeight = aSize.Height() / 2;
+    Window::Resize();
 
-    Window::SetSizePixel( aSize );
+    Size aSize(GetSizePixel());
+    long nHeight = aSize.Height() / 2;
 
     aSize.Height() = nHeight;
-    aLbScenario->SetSizePixel( aSize );
+    aLbScenario->SetSizePixel(aSize);
 
     aSize.Height() -= 4;
-    aEdComment->SetPosSizePixel( Point( 0, nHeight+4 ), aSize );
+    aEdComment->SetPosSizePixel(Point(0, nHeight + 4), aSize);
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/sidebar/ScPanelFactory.cxx b/sc/source/ui/sidebar/ScPanelFactory.cxx
index 9e584d8..b526c35 100644
--- a/sc/source/ui/sidebar/ScPanelFactory.cxx
+++ b/sc/source/ui/sidebar/ScPanelFactory.cxx
@@ -93,7 +93,7 @@ Reference<ui::XUIElement> SAL_CALL ScPanelFactory::createUIElement (
             pPanel = NumberFormatPropertyPanel::Create( pParentWindow, xFrame, pBindings );
         else if (rsResourceURL.endsWith("/NavigatorPanel"))
         {
-            pPanel = VclPtr<ScNavigatorDlg>::Create(pBindings, nullptr, pParentWindow, false);
+            pPanel = VclPtr<ScNavigatorDlg>::Create(pBindings, true, pParentWindow);
             nMinimumSize = 0;
         }
         else if (rsResourceURL.endsWith("/FunctionsPanel"))
diff --git a/sc/uiconfig/scalc/ui/navigatorpanel.ui b/sc/uiconfig/scalc/ui/navigatorpanel.ui
new file mode 100644
index 0000000..b56069a
--- /dev/null
+++ b/sc/uiconfig/scalc/ui/navigatorpanel.ui
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
+<interface>
+  <requires lib="gtk+" version="3.0"/>
+  <object class="GtkGrid" id="NavigatorPanel">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="border_width">6</property>
+    <child>
+      <object class="GtkGrid">
+        <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="row_spacing">6</property>
+        <property name="column_spacing">12</property>
+        <child>
+          <object class="GtkGrid">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="row_spacing">6</property>
+            <property name="column_spacing">12</property>
+            <property name="hexpand">True</property>
+            <child>
+              <object class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">start</property>
+                <property name="label" translatable="yes">Column:</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">column</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">start</property>
+                <property name="label" translatable="yes">Row:</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">row</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="sclo-ColumnEdit" id="column">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="hexpand">True</property>
+                <property name="tooltip_text" translatable="yes">Column</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="sclo-RowEdit" id="row">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="hexpand">True</property>
+                <property name="tooltip_text" translatable="yes">Row</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolbar" id="toolbox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="toolbar_style">icons</property>
+                <child>
+                  <object class="GtkToolButton" id="datarange">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="tooltip_text" translatable="yes">Data Range</property>
+                    <property name="action_name">datarange</property>
+                    <property name="icon_name">sc/imglst/na03.png</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="homogeneous">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkToolButton" id="start">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="tooltip_text" translatable="yes">Start</property>
+                    <property name="action_name">start</property>
+                    <property name="icon_name">sc/imglst/na05.png</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="homogeneous">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkToolButton" id="end">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="tooltip_text" translatable="yes">End</property>
+                    <property name="action_name">end</property>
+                    <property name="icon_name">sc/imglst/na06.png</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="homogeneous">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkToolButton" id="contents">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="tooltip_text" translatable="yes">Contents</property>
+                    <property name="action_name">contents</property>
+                    <property name="icon_name">sc/imglst/na011.png</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="homogeneous">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkToolButton" id="toggle">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="tooltip_text" translatable="yes">Toggle</property>
+                    <property name="action_name">toggle</property>
+                    <property name="icon_name">sc/imglst/na010.png</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="homogeneous">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkToolButton" id="scenarios">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="tooltip_text" translatable="yes">Scenarios</property>
+                    <property name="action_name">scenarios</property>
+                    <property name="icon_name">sc/imglst/na07.png</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="homogeneous">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkMenuToolButton" id="dragmode">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="tooltip_text" translatable="yes">Drag Mode</property>
+                    <property name="action_name">dragmode</property>
+                    <property name="icon_name">sc/imglst/na09.png</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="homogeneous">True</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="top_attach">0</property>
+                <property name="height">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkComboBox" id="documents">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="tooltip_text" translatable="yes">Document</property>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="documents-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes">Active Window</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">3</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox" id="contentbox">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
+            <property name="orientation">vertical</property>
+            <child>
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox" id="scenariobox">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
+            <property name="orientation">vertical</property>
+            <child>
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">2</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">0</property>
+      </packing>
+    </child>
+  </object>
+</interface>


More information about the Libreoffice-commits mailing list