sc/UIConfig_scalc.mk                   |    1 
 sc/sdi/docsh.sdi                       |    1 
 sc/source/ui/docshell/docsh4.cxx       |   14 ++
 sc/uiconfig/scalc/ui/notebookbar.ui    |  172 +++++++++++++++++++++++++++++++++
 sd/UIConfig_simpress.mk                |    1 
 sd/sdi/docshell.sdi                    |    5 
 sd/source/ui/docshell/docshel3.cxx     |    7 +
 sd/source/ui/docshell/docshell.cxx     |    7 +
 sd/uiconfig/simpress/ui/notebookbar.ui |  118 ++++++++++++++++++++++
 sfx2/UIConfig_sfx.mk                   |    1 
 sfx2/source/dialog/backingcomp.cxx     |   20 +++
 sfx2/uiconfig/ui/notebookbar.ui        |  118 ++++++++++++++++++++++
 vcl/source/window/brdwin.cxx           |    2 
 13 files changed, 467 insertions(+)

New commits:
commit 6ebf9cfbf54052d7fae50cdab146cc5c63ba262a
Author: Szymon Kłos <eszka...@gmail.com>
Date:   Tue May 10 19:16:47 2016 +0200

    Set different ui file for NotebookBar in each app
    
    Changes:
    + added ui file for start center, calc and impress
    + NotebookBar not visible in Math, Draw
    
    Change-Id: Ie35935e67524ac712930b088591e9e53955de4a1
    Reviewed-on: https://gerrit.libreoffice.org/24860
    Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de>
    Tested-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de>

diff --git a/sc/UIConfig_scalc.mk b/sc/UIConfig_scalc.mk
index f67a879..21bb7e1 100644
--- a/sc/UIConfig_scalc.mk
+++ b/sc/UIConfig_scalc.mk
@@ -137,6 +137,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/scalc,\
        sc/uiconfig/scalc/ui/leftfooterdialog \
        sc/uiconfig/scalc/ui/leftheaderdialog \
        sc/uiconfig/scalc/ui/namerangesdialog \
+       sc/uiconfig/scalc/ui/notebookbar \
        sc/uiconfig/scalc/ui/managenamesdialog \
        sc/uiconfig/scalc/ui/movecopysheet \
        sc/uiconfig/scalc/ui/movingaveragedialog \
diff --git a/sc/sdi/docsh.sdi b/sc/sdi/docsh.sdi
index 25852fb..852af49 100644
--- a/sc/sdi/docsh.sdi
+++ b/sc/sdi/docsh.sdi
@@ -87,6 +87,7 @@ interface TableDocument
     SID_EDIT_SCENARIO       [ ExecMethod = Execute; ]
     SID_ATTR_CHAR_FONTLIST  [ StateMethod = GetState; ]
     SID_SHARE_DOC           [ ExecMethod = Execute; StateMethod = GetState; ]
+    SID_NOTEBOOKBAR         [ ExecMethod = Execute; StateMethod = GetState; ]
 }
 
 
diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx
index 1bedf91..bdf1c52 100644
--- a/sc/source/ui/docshell/docsh4.cxx
+++ b/sc/source/ui/docshell/docsh4.cxx
@@ -101,6 +101,7 @@ using namespace ::com::sun::star;
 #include "formulacell.hxx"
 #include <documentlinkmgr.hxx>
 #include <memory>
+#include <sfx2/notebookbar/SfxNotebookBar.hxx>
 
 void ScDocShell::Execute( SfxRequest& rReq )
 {
@@ -1103,6 +1104,12 @@ void ScDocShell::Execute( SfxRequest& rReq )
                 { &aApp, &aTarget });
         }
         break;
+        case SID_NOTEBOOKBAR:
+        {
+            if (pBindings)
+                sfx2::SfxNotebookBar::ExecMethod(*pBindings);
+        }
+        break;
         default:
         {
             // kleiner (?) Hack -> forward der Slots an TabViewShell
@@ -1857,6 +1864,13 @@ void ScDocShell::GetState( SfxItemSet &rSet )
                 rSet.Put( SvxFontListItem( pImpl->pFontList, nWhich ) );
                 break;
 
+            case SID_NOTEBOOKBAR:
+                {
+                    if (GetViewBindings())
+                        sfx2::SfxNotebookBar::StateMethod(*GetViewBindings(), 
"modules/scalc/ui/notebookbar.ui");
+                }
+                break;
+
             default:
                 {
                 }
diff --git a/sc/uiconfig/scalc/ui/notebookbar.ui 
b/sc/uiconfig/scalc/ui/notebookbar.ui
new file mode 100644
index 0000000..337448d
--- /dev/null
+++ b/sc/uiconfig/scalc/ui/notebookbar.ui
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.18.3 -->
+<interface>
+  <requires lib="gtk+" version="3.12"/>
+  <!-- interface-local-resource-path ../../../icon-themes/galaxy/cmd/ -->
+  <object class="GtkGrid" id="NotebookBar">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <child>
+      <object class="GtkBox" id="box1">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</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="box63">
+                <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>
+                    <child>
+                      <object class="GtkButton" id="button-open">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="action_name">.uno:Open</property>
+                        <property name="relief">none</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="button-save">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="action_name">.uno:Save</property>
+                        <property name="relief">none</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>
+                  <object class="GtkSeparator" id="separator3">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="orientation">vertical</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </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>
+              <placeholder/>
+            </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">Calc</property>
+              </object>
+              <packing>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child type="tab">
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child type="tab">
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child type="tab">
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child type="tab">
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child type="tab">
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child type="tab">
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child type="tab">
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child type="tab">
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child type="tab">
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">0</property>
+      </packing>
+    </child>
+  </object>
+</interface>
diff --git a/sd/UIConfig_simpress.mk b/sd/UIConfig_simpress.mk
index bcb6160..3e7b3fe 100644
--- a/sd/UIConfig_simpress.mk
+++ b/sd/UIConfig_simpress.mk
@@ -119,6 +119,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/simpress,\
        sd/uiconfig/simpress/ui/interactiondialog \
        sd/uiconfig/simpress/ui/interactionpage \
        sd/uiconfig/simpress/ui/masterlayoutdlg \
+       sd/uiconfig/simpress/ui/notebookbar \
        sd/uiconfig/simpress/ui/optimpressgeneralpage \
        sd/uiconfig/simpress/ui/photoalbum \
        sd/uiconfig/simpress/ui/presentationdialog \
diff --git a/sd/sdi/docshell.sdi b/sd/sdi/docshell.sdi
index d2a0011..f5f3221 100644
--- a/sd/sdi/docshell.sdi
+++ b/sd/sdi/docshell.sdi
@@ -18,6 +18,11 @@
 
 interface ImpressDocument : DrawDocument
 {
+    SID_NOTEBOOKBAR
+    [
+        ExecMethod = Execute;
+        StateMethod = GetState;
+    ]
 }
 
 shell DrawDocShell
diff --git a/sd/source/ui/docshell/docshel3.cxx 
b/sd/source/ui/docshell/docshel3.cxx
index 69f15c7..c8fe3f4 100644
--- a/sd/source/ui/docshell/docshel3.cxx
+++ b/sd/source/ui/docshell/docshel3.cxx
@@ -42,6 +42,7 @@
 #include <editeng/langitem.hxx>
 #include <editeng/eeitem.hxx>
 #include <com/sun/star/i18n/TextConversionOption.hpp>
+#include <sfx2/notebookbar/SfxNotebookBar.hxx>
 
 #include "strings.hrc"
 #include "glob.hrc"
@@ -317,6 +318,12 @@ void DrawDocShell::Execute( SfxRequest& rReq )
         }
         break;
 
+        case SID_NOTEBOOKBAR:
+        {
+            
sfx2::SfxNotebookBar::ExecMethod(mpViewShell->GetFrame()->GetBindings());
+        }
+        break;
+
         default:
         break;
     }
diff --git a/sd/source/ui/docshell/docshell.cxx 
b/sd/source/ui/docshell/docshell.cxx
index e91caaa..65dafa0 100644
--- a/sd/source/ui/docshell/docshell.cxx
+++ b/sd/source/ui/docshell/docshell.cxx
@@ -67,6 +67,7 @@
 #include "undo/undofactory.hxx"
 #include "OutlineView.hxx"
 #include "ViewShellBase.hxx"
+#include <sfx2/notebookbar/SfxNotebookBar.hxx>
 
 using namespace sd;
 #define DrawDocShell
@@ -271,6 +272,12 @@ void DrawDocShell::GetState(SfxItemSet &rSet)
             }
             break;
 
+            case SID_NOTEBOOKBAR:
+            {
+                
sfx2::SfxNotebookBar::StateMethod(mpViewShell->GetFrame()->GetBindings(), 
"modules/simpress/ui/notebookbar.ui");
+            }
+            break;
+
             default:
             break;
         }
diff --git a/sd/uiconfig/simpress/ui/notebookbar.ui 
b/sd/uiconfig/simpress/ui/notebookbar.ui
new file mode 100644
index 0000000..f11f6eb
--- /dev/null
+++ b/sd/uiconfig/simpress/ui/notebookbar.ui
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.18.3 -->
+<interface>
+  <requires lib="gtk+" version="3.12"/>
+  <object class="GtkGrid" id="NotebookBar">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <child>
+      <object class="GtkBox" id="box1">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</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="box63">
+                <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>
+                    <child>
+                      <object class="GtkButton" id="Open">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="action_name">.uno:Open</property>
+                        <property name="relief">none</property>
+                        <property name="xalign">0</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="Save">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="action_name">.uno:Save</property>
+                        <property name="relief">none</property>
+                        <property name="xalign">0</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">2</property>
+                  </packing>
+                </child>
+              </object>
+            </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">File</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox" id="box3">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <placeholder/>
+                </child>
+              </object>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </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">Impress</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">0</property>
+      </packing>
+    </child>
+  </object>
+</interface>
diff --git a/sfx2/UIConfig_sfx.mk b/sfx2/UIConfig_sfx.mk
index f336669..5e90b5a 100644
--- a/sfx2/UIConfig_sfx.mk
+++ b/sfx2/UIConfig_sfx.mk
@@ -34,6 +34,7 @@ $(eval $(call gb_UIConfig_add_uifiles,sfx,\
        sfx2/uiconfig/ui/loadtemplatedialog \
        sfx2/uiconfig/ui/managestylepage \
        sfx2/uiconfig/ui/newstyle \
+       sfx2/uiconfig/ui/notebookbar \
        sfx2/uiconfig/ui/optprintpage \
        sfx2/uiconfig/ui/password \
        sfx2/uiconfig/ui/printeroptionsdialog \
diff --git a/sfx2/source/dialog/backingcomp.cxx 
b/sfx2/source/dialog/backingcomp.cxx
index defdaa3..0654b3e 100644
--- a/sfx2/source/dialog/backingcomp.cxx
+++ b/sfx2/source/dialog/backingcomp.cxx
@@ -48,6 +48,7 @@
 #include <vcl/keycod.hxx>
 #include <vcl/wrkwin.hxx>
 #include <vcl/svapp.hxx>
+#include <vcl/syswin.hxx>
 #include <rtl/ref.hxx>
 #include <rtl/ustrbuf.hxx>
 
@@ -428,6 +429,14 @@ void SAL_CALL BackingComp::attachFrame( /*IN*/ const 
css::uno::Reference< css::f
     if( pBack )
         pBack->setOwningFrame( m_xFrame );
 
+    // set NotebookBar
+    SystemWindow* pSysWindow = static_cast<SystemWindow*>(pParent);
+    if (pSysWindow)
+    {
+        pSysWindow->SetNotebookBar("sfx/ui/notebookbar.ui", m_xFrame);
+        pSysWindow->GetNotebookBar()->Show();
+    }
+
     // Set a minimum size for Start Center
     if( pParent && pBack )
     {
@@ -585,6 +594,17 @@ void SAL_CALL BackingComp::disposing( /*IN*/ const 
css::lang::EventObject& aEven
 void SAL_CALL BackingComp::dispose()
     throw(css::uno::RuntimeException, std::exception)
 {
+    if (m_xFrame.is())
+    {
+        css::uno::Reference< css::awt::XWindow > xParentWindow = 
m_xFrame->getContainerWindow();
+        VclPtr< WorkWindow > pParent = 
static_cast<WorkWindow*>(VCLUnoHelper::GetWindow(xParentWindow).get());
+
+        // hide NotebookBar
+        SystemWindow* pSysWindow = static_cast<SystemWindow*>(pParent);
+        if (pSysWindow && pSysWindow->GetNotebookBar())
+            pSysWindow->GetNotebookBar()->Hide();
+    }
+
     /* SAFE { */
     SolarMutexGuard aGuard;
 
diff --git a/sfx2/uiconfig/ui/notebookbar.ui b/sfx2/uiconfig/ui/notebookbar.ui
new file mode 100644
index 0000000..1f7bf46
--- /dev/null
+++ b/sfx2/uiconfig/ui/notebookbar.ui
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.18.3 -->
+<interface>
+  <requires lib="gtk+" version="3.12"/>
+  <object class="GtkGrid" id="NotebookBar">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <child>
+      <object class="GtkBox" id="box1">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</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="box63">
+                <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>
+                    <child>
+                      <object class="GtkButton" id="Open">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="action_name">.uno:Open</property>
+                        <property name="relief">none</property>
+                        <property name="xalign">0</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="OpenRemote">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="action_name">.uno:OpenRemote</property>
+                        <property name="relief">none</property>
+                        <property name="xalign">0</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">2</property>
+                  </packing>
+                </child>
+              </object>
+            </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">File</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox" id="box3">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="spacing">6</property>
+                <child>
+                  <placeholder/>
+                </child>
+              </object>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </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">Home</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">0</property>
+      </packing>
+    </child>
+  </object>
+</interface>
diff --git a/vcl/source/window/brdwin.cxx b/vcl/source/window/brdwin.cxx
index 57f7e0c..bc58e47 100644
--- a/vcl/source/window/brdwin.cxx
+++ b/vcl/source/window/brdwin.cxx
@@ -2177,6 +2177,8 @@ void ImplBorderWindow::SetMenuBarMode( bool bHide )
 
 void ImplBorderWindow::SetNotebookBar(const OUString& rUIXMLDescription, const 
css::uno::Reference<css::frame::XFrame>& rFrame)
 {
+    if (mpNotebookBar)
+        mpNotebookBar.disposeAndClear();
     mpNotebookBar = VclPtr<NotebookBar>::Create(this, "NotebookBar", 
rUIXMLDescription, rFrame);
     Resize();
 }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to