[Libreoffice-commits] core.git: framework/source include/vcl vcl/inc vcl/Library_vcl.mk vcl/source vcl/uiconfig vcl/UIConfig_vcl.mk

Jan Holesovsky kendy at collabora.com
Thu Oct 15 01:56:58 PDT 2015


 framework/source/layoutmanager/layoutmanager.cxx |    7 
 include/vcl/syswin.hxx                           |    3 
 vcl/Library_vcl.mk                               |    1 
 vcl/UIConfig_vcl.mk                              |    1 
 vcl/inc/brdwin.hxx                               |    6 
 vcl/source/window/brdwin.cxx                     |   53 ++-
 vcl/source/window/notebookbarwindow.cxx          |   69 ++++
 vcl/source/window/notebookbarwindow.hxx          |   32 ++
 vcl/source/window/syswin.cxx                     |    7 
 vcl/uiconfig/ui/notebookbar.ui                   |  355 +++++++++++++++++++++++
 10 files changed, 520 insertions(+), 14 deletions(-)

New commits:
commit 8c1014021dbe9da2e18233d215b970f5359db67b
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Thu Sep 11 14:10:21 2014 +0200

    vcl: Initial NotebookBar implementation.
    
    See https://wiki.documentfoundation.org/Development/NotebookBar
    
    Change-Id: I91535c13d68261f7195989ec78bd305cf572c87c

diff --git a/framework/source/layoutmanager/layoutmanager.cxx b/framework/source/layoutmanager/layoutmanager.cxx
index a14b7ab..3d7a35a 100644
--- a/framework/source/layoutmanager/layoutmanager.cxx
+++ b/framework/source/layoutmanager/layoutmanager.cxx
@@ -782,7 +782,14 @@ void LayoutManager::implts_updateUIElementsVisibleState( bool bSetVisible )
         if ( pSysWindow )
         {
             if ( bSetVisible )
+            {
                 pSysWindow->SetMenuBar(pMenuBar);
+                if (getenv("LO_USE_NOTEBOOKBAR"))
+                {
+                    pSysWindow->CreateNotebookBar("vcl/ui/notebookbar.ui", m_xFrame);
+                    pSysWindow->SetMenuBarMode(MenuBarMode::Hide);
+                }
+            }
             else
                 pSysWindow->SetMenuBar( 0 );
         }
diff --git a/include/vcl/syswin.hxx b/include/vcl/syswin.hxx
index d31f68e..12b0f8f 100644
--- a/include/vcl/syswin.hxx
+++ b/include/vcl/syswin.hxx
@@ -28,6 +28,7 @@
 
 class ModalDialog;
 class MenuBar;
+class NotebookBarWindow;
 class TaskPaneList;
 class VclContainer;
 
@@ -237,6 +238,8 @@ public:
     MenuBar*        GetMenuBar() const { return mpMenuBar; }
     void            SetMenuBarMode( MenuBarMode nMode );
 
+    void            CreateNotebookBar(const OUString& rUIXMLDescription, const css::uno::Reference<css::frame::XFrame>& rFrame);
+
     TaskPaneList*   GetTaskPaneList();
     void            GetWindowStateData( WindowStateData& rData ) const;
 
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index f2cd719..010568a 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -179,6 +179,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\
     vcl/source/window/mouse \
     vcl/source/window/mouseevent \
     vcl/source/window/msgbox \
+    vcl/source/window/notebookbarwindow \
     vcl/source/window/popupmenuwindow \
     vcl/source/window/printdlg \
     vcl/source/window/scrwnd \
diff --git a/vcl/UIConfig_vcl.mk b/vcl/UIConfig_vcl.mk
index a81b30e..f30252c 100644
--- a/vcl/UIConfig_vcl.mk
+++ b/vcl/UIConfig_vcl.mk
@@ -13,6 +13,7 @@ $(eval $(call gb_UIConfig_add_uifiles,vcl,\
 	vcl/uiconfig/ui/cupspassworddialog \
 	vcl/uiconfig/ui/errornocontentdialog \
 	vcl/uiconfig/ui/errornoprinterdialog \
+	vcl/uiconfig/ui/notebookbar \
 	vcl/uiconfig/ui/printdialog \
 	vcl/uiconfig/ui/printerdevicepage \
 	vcl/uiconfig/ui/printerpaperpage \
diff --git a/vcl/inc/brdwin.hxx b/vcl/inc/brdwin.hxx
index 13233e6..29a1cc67 100644
--- a/vcl/inc/brdwin.hxx
+++ b/vcl/inc/brdwin.hxx
@@ -22,8 +22,11 @@
 
 #include <vcl/window.hxx>
 
+#include <com/sun/star/frame/XFrame.hpp>
+
 class ImplBorderWindowView;
 enum class DrawButtonFlags;
+class NotebookBarWindow;
 
 #define BORDERWINDOW_STYLE_OVERLAP          ((sal_uInt16)0x0001)
 #define BORDERWINDOW_STYLE_BORDER           ((sal_uInt16)0x0002)
@@ -85,6 +88,7 @@ class ImplBorderWindow : public vcl::Window
 private:
     ImplBorderWindowView*   mpBorderView;
     VclPtr<vcl::Window>     mpMenuBarWindow;
+    VclPtr<NotebookBarWindow> mpNotebookBarWindow;
     long                    mnMinWidth;
     long                    mnMinHeight;
     long                    mnMaxWidth;
@@ -158,6 +162,8 @@ public:
     void                    SetMenuBarWindow( vcl::Window* pWindow );
     void                    SetMenuBarMode( bool bHide );
 
+    void                    SetNotebookBarWindow(const OUString& rUIXMLDescription, const css::uno::Reference<css::frame::XFrame>& rFrame);
+
     void                    SetMinOutputSize( long nWidth, long nHeight )
                                 { mnMinWidth = nWidth; mnMinHeight = nHeight; }
     void                    SetMaxOutputSize( long nWidth, long nHeight )
diff --git a/vcl/source/window/brdwin.cxx b/vcl/source/window/brdwin.cxx
index 773aaa7..c5fd0be 100644
--- a/vcl/source/window/brdwin.cxx
+++ b/vcl/source/window/brdwin.cxx
@@ -36,6 +36,8 @@
 #include <vcl/metric.hxx>
 #include <vcl/settings.hxx>
 
+#include "notebookbarwindow.hxx"
+
 using namespace ::com::sun::star::uno;
 
 // useful caption height for title bar buttons
@@ -1832,6 +1834,7 @@ void ImplBorderWindow::dispose()
     delete mpBorderView;
     mpBorderView = NULL;
     mpMenuBarWindow.clear();
+    mpNotebookBarWindow.disposeAndClear();
     vcl::Window::dispose();
 }
 
@@ -1912,12 +1915,14 @@ void ImplBorderWindow::Resize()
     {
         vcl::Window* pClientWindow = ImplGetClientWindow();
 
-        if ( mpMenuBarWindow )
+        sal_Int32 nLeftBorder;
+        sal_Int32 nTopBorder;
+        sal_Int32 nRightBorder;
+        sal_Int32 nBottomBorder;
+        mpBorderView->GetBorder( nLeftBorder, nTopBorder, nRightBorder, nBottomBorder );
+
+        if (mpMenuBarWindow)
         {
-            sal_Int32 nLeftBorder;
-            sal_Int32 nTopBorder;
-            sal_Int32 nRightBorder;
-            sal_Int32 nBottomBorder;
             long nMenuHeight = mpMenuBarWindow->GetSizePixel().Height();
             if ( mbMenuHide )
             {
@@ -1930,13 +1935,22 @@ void ImplBorderWindow::Resize()
                 if ( !nMenuHeight )
                     nMenuHeight = mnOrgMenuHeight;
             }
-            mpBorderView->GetBorder( nLeftBorder, nTopBorder, nRightBorder, nBottomBorder );
-            mpMenuBarWindow->setPosSizePixel( nLeftBorder,
-                                              nTopBorder,
-                                              aSize.Width()-nLeftBorder-nRightBorder,
-                                              nMenuHeight,
-                                              PosSizeFlags::Pos |
-                                              PosSizeFlags::Width | PosSizeFlags::Height );
+            mpMenuBarWindow->setPosSizePixel(
+                    nLeftBorder, nTopBorder,
+                    aSize.Width()-nLeftBorder-nRightBorder, nMenuHeight,
+                    PosSizeFlags::Pos | PosSizeFlags::Width | PosSizeFlags::Height);
+
+            // shift the notebookbar down accordingly
+            nTopBorder += nMenuHeight;
+        }
+
+        if (mpNotebookBarWindow)
+        {
+            long nNotebookBarHeight = mpNotebookBarWindow->GetSizePixel().Height();
+            mpNotebookBarWindow->setPosSizePixel(
+                    nLeftBorder, nTopBorder,
+                    aSize.Width() - nLeftBorder - nRightBorder, nNotebookBarHeight,
+                    PosSizeFlags::Pos | PosSizeFlags::Width | PosSizeFlags::Height);
         }
 
         GetBorder( pClientWindow->mpWindowImpl->mnLeftBorder, pClientWindow->mpWindowImpl->mnTopBorder,
@@ -2163,12 +2177,23 @@ void ImplBorderWindow::SetMenuBarMode( bool bHide )
     UpdateMenuHeight();
 }
 
+void ImplBorderWindow::SetNotebookBarWindow(const OUString& rUIXMLDescription, const css::uno::Reference<css::frame::XFrame>& rFrame)
+{
+    mpNotebookBarWindow.reset(new NotebookBarWindow(this, "NotebookBar", rUIXMLDescription, rFrame));
+    Resize();
+    mpNotebookBarWindow->Show();
+}
+
 void ImplBorderWindow::GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder,
                                   sal_Int32& rRightBorder, sal_Int32& rBottomBorder ) const
 {
-    mpBorderView->GetBorder( rLeftBorder, rTopBorder, rRightBorder, rBottomBorder );
-    if ( mpMenuBarWindow && !mbMenuHide )
+    mpBorderView->GetBorder(rLeftBorder, rTopBorder, rRightBorder, rBottomBorder);
+
+    if (mpMenuBarWindow && !mbMenuHide)
         rTopBorder += mpMenuBarWindow->GetSizePixel().Height();
+
+    if (mpNotebookBarWindow)
+        rTopBorder += mpNotebookBarWindow->GetSizePixel().Height();
 }
 
 long ImplBorderWindow::CalcTitleWidth() const
diff --git a/vcl/source/window/notebookbarwindow.cxx b/vcl/source/window/notebookbarwindow.cxx
new file mode 100644
index 0000000..09fc067
--- /dev/null
+++ b/vcl/source/window/notebookbarwindow.cxx
@@ -0,0 +1,69 @@
+/* -*- 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/.
+ */
+
+#include "notebookbarwindow.hxx"
+
+#include <vcl/layout.hxx>
+
+NotebookBarWindow::NotebookBarWindow(Window* pParent, const OString& rID, const OUString& rUIXMLDescription, const css::uno::Reference<css::frame::XFrame> &rFrame)
+    : Control(pParent)
+{
+    SetStyle(GetStyle() | WB_DIALOGCONTROL);
+    m_pUIBuilder = new VclBuilder(this, getUIRootDir(), rUIXMLDescription, rID, rFrame);
+}
+
+NotebookBarWindow::~NotebookBarWindow()
+{
+    disposeOnce();
+}
+
+void NotebookBarWindow::dispose()
+{
+    disposeBuilder();
+    Control::dispose();
+}
+
+Size NotebookBarWindow::GetOptimalSize() const
+{
+    if (isLayoutEnabled(this))
+        return VclContainer::getLayoutRequisition(*GetWindow(GetWindowType::FirstChild));
+
+    return Control::GetOptimalSize();
+}
+
+void NotebookBarWindow::setPosSizePixel(long nX, long nY, long nWidth, long nHeight, PosSizeFlags nFlags)
+{
+    bool bCanHandleSmallerWidth = false;
+    bool bCanHandleSmallerHeight = false;
+
+    bool bIsLayoutEnabled = isLayoutEnabled(this);
+    Window *pChild = GetWindow(GetWindowType::FirstChild);
+
+    if (bIsLayoutEnabled && pChild->GetType() == WINDOW_SCROLLWINDOW)
+    {
+        WinBits nStyle = pChild->GetStyle();
+        if (nStyle & (WB_AUTOHSCROLL | WB_HSCROLL))
+            bCanHandleSmallerWidth = true;
+        if (nStyle & (WB_AUTOVSCROLL | WB_VSCROLL))
+            bCanHandleSmallerHeight = true;
+    }
+
+    Size aSize(GetOptimalSize());
+    if (!bCanHandleSmallerWidth)
+        nWidth = std::max(nWidth, aSize.Width());
+    if (!bCanHandleSmallerHeight)
+        nHeight = std::max(nHeight, aSize.Height());
+
+    Control::setPosSizePixel(nX, nY, nWidth, nHeight, nFlags);
+
+    if (bIsLayoutEnabled && (nFlags & PosSizeFlags::Size))
+        VclContainer::setLayoutAllocation(*pChild, Point(0, 0), Size(nWidth, nHeight));
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/window/notebookbarwindow.hxx b/vcl/source/window/notebookbarwindow.hxx
new file mode 100644
index 0000000..0fc64a6
--- /dev/null
+++ b/vcl/source/window/notebookbarwindow.hxx
@@ -0,0 +1,32 @@
+/* -*- 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/.
+ */
+
+#ifndef VCL_SOURCE_WINDOW_NOTEBOOKBARWINDOW_HXX
+#define VCL_SOURCE_WINDOW_NOTEBOOKBARWINDOW_HXX
+
+#include "menuwindow.hxx"
+
+#include <vcl/builder.hxx>
+#include <vcl/ctrl.hxx>
+
+/// This implements Widget Layout-based notebook-like menu bar.
+class NotebookBarWindow : public Control, public VclBuilderContainer
+{
+public:
+    NotebookBarWindow(Window* pParent, const OString& rID, const OUString& rUIXMLDescription, const css::uno::Reference<css::frame::XFrame> &rFrame);
+    virtual ~NotebookBarWindow();
+    virtual void dispose() SAL_OVERRIDE;
+
+    virtual Size GetOptimalSize() const SAL_OVERRIDE;
+    virtual void setPosSizePixel(long nX, long nY, long nWidth, long nHeight, PosSizeFlags nFlags = PosSizeFlags::All) SAL_OVERRIDE;
+};
+
+#endif // VCL_SOURCE_WINDOW_NOTEBOOKBARWINDOW_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/window/syswin.cxx b/vcl/source/window/syswin.cxx
index 1403918..a8f7538 100644
--- a/vcl/source/window/syswin.cxx
+++ b/vcl/source/window/syswin.cxx
@@ -39,6 +39,8 @@
 #include <brdwin.hxx>
 #include <window.h>
 
+#include "notebookbarwindow.hxx"
+
 using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::lang;
 
@@ -967,6 +969,11 @@ void SystemWindow::SetMenuBar(MenuBar* pMenuBar)
     }
 }
 
+void SystemWindow::CreateNotebookBar(const OUString& rUIXMLDescription, const css::uno::Reference<css::frame::XFrame>& rFrame)
+{
+    static_cast<ImplBorderWindow*>(mpWindowImpl->mpBorderWindow.get())->SetNotebookBarWindow(rUIXMLDescription, rFrame);
+}
+
 void SystemWindow::SetMenuBarMode( MenuBarMode nMode )
 {
     if ( mnMenuBarMode != nMode )
diff --git a/vcl/uiconfig/ui/notebookbar.ui b/vcl/uiconfig/ui/notebookbar.ui
new file mode 100644
index 0000000..8177e7a
--- /dev/null
+++ b/vcl/uiconfig/ui/notebookbar.ui
@@ -0,0 +1,355 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.4 -->
+  <object class="GtkGrid" id="NotebookBar">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <child>
+      <object class="GtkGrid" id="grid1">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
+        <child>
+          <object class="GtkNotebook" id="notebook1">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
+            <child>
+              <object class="GtkBox" id="box3">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkBox" id="box4">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="orientation">vertical</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <object class="GtkButton" id="button2">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="action_name">.uno:Open</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label11">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">label</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+              </object>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">File</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox" id="box1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <object class="GtkBox" id="box2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="orientation">vertical</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <object class="GtkBox" id="box5">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <child>
+                          <object class="GtkButton" id="button5">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="action_name">.uno:Paste</property>
+                            <property name="image">image1</property>
+                            <property name="relief">none</property>
+                            <property name="image_position">top</property>
+                            <property name="always_show_image">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkBox" id="box6">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="orientation">vertical</property>
+                            <child>
+                              <object class="GtkButton" id="button1">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="action_name">.uno:Cut</property>
+                                <property name="relief">none</property>
+                                <property name="xalign">0</property>
+                                <property name="always_show_image">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkButton" id="button3">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="action_name">.uno:Copy</property>
+                                <property name="relief">none</property>
+                                <property name="xalign">0</property>
+                                <property name="always_show_image">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkButton" id="button4">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="action_name">.uno:FormatPaintbrush</property>
+                                <property name="relief">none</property>
+                                <property name="xalign">0</property>
+                                <property name="always_show_image">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">2</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</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="GtkLabel" id="label10">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">Clipboard</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+              </object>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Edit</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label3">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">View</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="position">2</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label4">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Insert</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="position">3</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label5">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Format</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="position">4</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label6">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Table</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="position">5</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label7">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Tools</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="position">6</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label8">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Window</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="position">7</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label9">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Help</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="position">8</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">0</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">0</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+  </object>
+  <object class="GtkImage" id="image1">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="pixbuf">cmd/lc_paste.png</property>
+  </object>
+</interface>


More information about the Libreoffice-commits mailing list