Author: af
Date: Fri Apr 19 09:51:45 2013
New Revision: 1469765
URL: http://svn.apache.org/r1469765
Log:
121960: Extend the sidebar::ControllerItem to check Disabled state. Converted
TextPropertyPanel to use this new functionality.
Added:
openoffice/trunk/main/default_images/res/commandimagelist/lc_characterbackgroundpattern.png
(with props)
openoffice/trunk/main/default_images/res/commandimagelist/lc_spacing.png
(with props)
openoffice/trunk/main/default_images/res/commandimagelist/lch_characterbackgroundpattern.png
(with props)
openoffice/trunk/main/default_images/res/commandimagelist/lch_spacing.png
(with props)
openoffice/trunk/main/default_images/res/commandimagelist/sc_characterbackgroundpattern.png
(with props)
openoffice/trunk/main/default_images/res/commandimagelist/sc_spacing.png
(with props)
openoffice/trunk/main/default_images/res/commandimagelist/sch_characterbackgroundpattern.png
(with props)
openoffice/trunk/main/default_images/res/commandimagelist/sch_spacing.png
(with props)
openoffice/trunk/main/sfx2/source/sidebar/CommandInfoProvider.cxx
openoffice/trunk/main/sfx2/source/sidebar/CommandInfoProvider.hxx
Modified:
openoffice/trunk/main/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
openoffice/trunk/main/sc/source/ui/sidebar/AlignmentPropertyPanel.cxx
openoffice/trunk/main/sc/source/ui/sidebar/AlignmentPropertyPanel.hxx
openoffice/trunk/main/sc/source/ui/sidebar/CellAppearancePropertyPanel.cxx
openoffice/trunk/main/sc/source/ui/sidebar/CellAppearancePropertyPanel.hxx
openoffice/trunk/main/sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx
openoffice/trunk/main/sc/source/ui/sidebar/NumberFormatPropertyPanel.hxx
openoffice/trunk/main/sfx2/Library_sfx.mk
openoffice/trunk/main/sfx2/inc/sfx2/sidebar/ControllerItem.hxx
openoffice/trunk/main/sfx2/source/sidebar/ControllerItem.cxx
openoffice/trunk/main/sfx2/source/sidebar/Deck.cxx
openoffice/trunk/main/sfx2/source/sidebar/DeckLayouter.cxx
openoffice/trunk/main/sfx2/source/sidebar/FocusManager.cxx
openoffice/trunk/main/sfx2/source/sidebar/SidebarChildWindow.cxx
openoffice/trunk/main/svx/Library_svx.mk
openoffice/trunk/main/svx/source/sidebar/area/AreaPropertyPanel.cxx
openoffice/trunk/main/svx/source/sidebar/area/AreaPropertyPanel.hxx
openoffice/trunk/main/svx/source/sidebar/graphic/GraphicPropertyPanel.cxx
openoffice/trunk/main/svx/source/sidebar/graphic/GraphicPropertyPanel.hxx
openoffice/trunk/main/svx/source/sidebar/line/LinePropertyPanel.cxx
openoffice/trunk/main/svx/source/sidebar/line/LinePropertyPanel.hxx
openoffice/trunk/main/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx
openoffice/trunk/main/svx/source/sidebar/paragraph/ParaPropertyPanel.hxx
openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.hxx
openoffice/trunk/main/svx/source/sidebar/text/TextCharacterSpacingControl.cxx
openoffice/trunk/main/svx/source/sidebar/text/TextCharacterSpacingControl.hxx
openoffice/trunk/main/svx/source/sidebar/text/TextPropertyPanel.cxx
openoffice/trunk/main/svx/source/sidebar/text/TextPropertyPanel.hrc
openoffice/trunk/main/svx/source/sidebar/text/TextPropertyPanel.hxx
openoffice/trunk/main/svx/source/sidebar/text/TextPropertyPanel.src
openoffice/trunk/main/svx/source/sidebar/text/TextUnderlineControl.cxx
openoffice/trunk/main/svx/source/sidebar/text/TextUnderlineControl.hxx
openoffice/trunk/main/sw/source/ui/sidebar/PagePropertyPanel.cxx
openoffice/trunk/main/sw/source/ui/sidebar/PagePropertyPanel.hxx
openoffice/trunk/main/sw/source/ui/sidebar/WrapPropertyPanel.cxx
openoffice/trunk/main/sw/source/ui/sidebar/WrapPropertyPanel.hxx
Added:
openoffice/trunk/main/default_images/res/commandimagelist/lc_characterbackgroundpattern.png
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/default_images/res/commandimagelist/lc_characterbackgroundpattern.png?rev=1469765&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
openoffice/trunk/main/default_images/res/commandimagelist/lc_characterbackgroundpattern.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: openoffice/trunk/main/default_images/res/commandimagelist/lc_spacing.png
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/default_images/res/commandimagelist/lc_spacing.png?rev=1469765&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
openoffice/trunk/main/default_images/res/commandimagelist/lc_spacing.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
openoffice/trunk/main/default_images/res/commandimagelist/lch_characterbackgroundpattern.png
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/default_images/res/commandimagelist/lch_characterbackgroundpattern.png?rev=1469765&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
openoffice/trunk/main/default_images/res/commandimagelist/lch_characterbackgroundpattern.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: openoffice/trunk/main/default_images/res/commandimagelist/lch_spacing.png
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/default_images/res/commandimagelist/lch_spacing.png?rev=1469765&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
openoffice/trunk/main/default_images/res/commandimagelist/lch_spacing.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
openoffice/trunk/main/default_images/res/commandimagelist/sc_characterbackgroundpattern.png
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/default_images/res/commandimagelist/sc_characterbackgroundpattern.png?rev=1469765&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
openoffice/trunk/main/default_images/res/commandimagelist/sc_characterbackgroundpattern.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: openoffice/trunk/main/default_images/res/commandimagelist/sc_spacing.png
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/default_images/res/commandimagelist/sc_spacing.png?rev=1469765&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
openoffice/trunk/main/default_images/res/commandimagelist/sc_spacing.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
openoffice/trunk/main/default_images/res/commandimagelist/sch_characterbackgroundpattern.png
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/default_images/res/commandimagelist/sch_characterbackgroundpattern.png?rev=1469765&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
openoffice/trunk/main/default_images/res/commandimagelist/sch_characterbackgroundpattern.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: openoffice/trunk/main/default_images/res/commandimagelist/sch_spacing.png
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/default_images/res/commandimagelist/sch_spacing.png?rev=1469765&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
openoffice/trunk/main/default_images/res/commandimagelist/sch_spacing.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Modified:
openoffice/trunk/main/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
---
openoffice/trunk/main/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
(original)
+++
openoffice/trunk/main/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
Fri Apr 19 09:51:45 2013
@@ -1004,6 +1004,14 @@
<value>1</value>
</prop>
</node>
+ <node oor:name=".uno:CharacterBackgroundPattern" oor:op="replace">
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">Highlight Color</value>
+ </prop>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>1</value>
+ </prop>
+ </node>
<node oor:name=".uno:CharFontName" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Font Name</value>
@@ -4832,6 +4840,14 @@
<value>15</value>
</prop>
</node>
+ <node oor:name=".uno:Spacing" oor:op="replace">
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">Character Spacing</value>
+ </prop>
+ <prop oor:name="Properties" oor:type="xs:int">
+ <value>1</value>
+ </prop>
+ </node>
<node oor:name=".uno:SpellDialog" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Spelling...</value>
Modified: openoffice/trunk/main/sc/source/ui/sidebar/AlignmentPropertyPanel.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/sidebar/AlignmentPropertyPanel.cxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/sidebar/AlignmentPropertyPanel.cxx
(original)
+++ openoffice/trunk/main/sc/source/ui/sidebar/AlignmentPropertyPanel.cxx Fri
Apr 19 09:51:45 2013
@@ -386,8 +386,11 @@ void AlignmentPropertyPanel::HandleConte
void AlignmentPropertyPanel::NotifyItemUpdate(
sal_uInt16 nSID,
SfxItemState eState,
- const SfxPoolItem* pState)
+ const SfxPoolItem* pState,
+ const bool bIsEnabled)
{
+ (void)bIsEnabled;
+
switch(nSID)
{
case SID_H_ALIGNCELL:
Modified: openoffice/trunk/main/sc/source/ui/sidebar/AlignmentPropertyPanel.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/sidebar/AlignmentPropertyPanel.hxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/sidebar/AlignmentPropertyPanel.hxx
(original)
+++ openoffice/trunk/main/sc/source/ui/sidebar/AlignmentPropertyPanel.hxx Fri
Apr 19 09:51:45 2013
@@ -57,7 +57,8 @@ public:
virtual void NotifyItemUpdate(
const sal_uInt16 nSId,
const SfxItemState eState,
- const SfxPoolItem* pState);
+ const SfxPoolItem* pState,
+ const bool bIsEnabled);
SfxBindings* GetBindings();
Modified:
openoffice/trunk/main/sc/source/ui/sidebar/CellAppearancePropertyPanel.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/sidebar/CellAppearancePropertyPanel.cxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/sidebar/CellAppearancePropertyPanel.cxx
(original)
+++ openoffice/trunk/main/sc/source/ui/sidebar/CellAppearancePropertyPanel.cxx
Fri Apr 19 09:51:45 2013
@@ -461,8 +461,11 @@ void CellAppearancePropertyPanel::Handle
void CellAppearancePropertyPanel::NotifyItemUpdate(
sal_uInt16 nSID,
SfxItemState eState,
- const SfxPoolItem* pState)
+ const SfxPoolItem* pState,
+ const bool bIsEnabled)
{
+ (void)bIsEnabled;
+
switch(nSID)
{
case SID_BACKGROUND_COLOR:
Modified:
openoffice/trunk/main/sc/source/ui/sidebar/CellAppearancePropertyPanel.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/sidebar/CellAppearancePropertyPanel.hxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/sidebar/CellAppearancePropertyPanel.hxx
(original)
+++ openoffice/trunk/main/sc/source/ui/sidebar/CellAppearancePropertyPanel.hxx
Fri Apr 19 09:51:45 2013
@@ -65,7 +65,8 @@ public:
virtual void NotifyItemUpdate(
const sal_uInt16 nSId,
const SfxItemState eState,
- const SfxPoolItem* pState);
+ const SfxPoolItem* pState,
+ const bool bIsEnabled);
SfxBindings* GetBindings();
Modified:
openoffice/trunk/main/sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx
(original)
+++ openoffice/trunk/main/sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx
Fri Apr 19 09:51:45 2013
@@ -267,8 +267,11 @@ void NumberFormatPropertyPanel::HandleCo
void NumberFormatPropertyPanel::NotifyItemUpdate(
sal_uInt16 nSID,
SfxItemState eState,
- const SfxPoolItem* pState)
+ const SfxPoolItem* pState,
+ const bool bIsEnabled)
{
+ (void)bIsEnabled;
+
switch(nSID)
{
case SID_NUMBER_TYPE_FORMAT:
Modified:
openoffice/trunk/main/sc/source/ui/sidebar/NumberFormatPropertyPanel.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/sidebar/NumberFormatPropertyPanel.hxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/sidebar/NumberFormatPropertyPanel.hxx
(original)
+++ openoffice/trunk/main/sc/source/ui/sidebar/NumberFormatPropertyPanel.hxx
Fri Apr 19 09:51:45 2013
@@ -54,7 +54,8 @@ public:
virtual void NotifyItemUpdate(
const sal_uInt16 nSId,
const SfxItemState eState,
- const SfxPoolItem* pState);
+ const SfxPoolItem* pState,
+ const bool bIsEnabled);
SfxBindings* GetBindings();
Modified: openoffice/trunk/main/sfx2/Library_sfx.mk
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/Library_sfx.mk?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/Library_sfx.mk (original)
+++ openoffice/trunk/main/sfx2/Library_sfx.mk Fri Apr 19 09:51:45 2013
@@ -219,6 +219,7 @@ $(eval $(call gb_Library_add_exception_o
sfx2/source/sidebar/SidebarPanelBase \
sfx2/source/sidebar/SidebarToolBox \
sfx2/source/sidebar/AsynchronousCall \
+ sfx2/source/sidebar/CommandInfoProvider \
sfx2/source/sidebar/Context \
sfx2/source/sidebar/ContextChangeBroadcaster \
sfx2/source/sidebar/ContextList \
Modified: openoffice/trunk/main/sfx2/inc/sfx2/sidebar/ControllerItem.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/inc/sfx2/sidebar/ControllerItem.hxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/inc/sfx2/sidebar/ControllerItem.hxx (original)
+++ openoffice/trunk/main/sfx2/inc/sfx2/sidebar/ControllerItem.hxx Fri Apr 19
09:51:45 2013
@@ -24,11 +24,33 @@
#include <sfx2/ctrlitem.hxx>
+#include <cppuhelper/compbase1.hxx>
+#include <cppuhelper/basemutex.hxx>
+#include <unotools/cmdoptions.hxx>
+#include <vcl/image.hxx>
+
+#include <com/sun/star/frame/XFrame.hpp>
+
#include <boost/function.hpp>
+namespace css = ::com::sun::star;
+namespace cssu = ::com::sun::star::uno;
+
+class SfxViewFrame;
+class ToolBox;
+
+
namespace sfx2 { namespace sidebar {
+/** The sfx2::sidebar::ControllerItem is a wrapper around the
+ SfxControllerItem that becomes necessary to allow objects (think
+ sidebar panels) to receive state changes without having one
+ SfxControllerItem per supported item as base class (which is not
+ possible in C++ anyway).
+
+ It also gives access to the label and icon of a slot/command.
+*/
class SFX2_DLLPUBLIC ControllerItem
: public SfxControllerItem
{
@@ -39,18 +61,82 @@ public:
virtual void NotifyItemUpdate(
const sal_uInt16 nSId,
const SfxItemState eState,
- const SfxPoolItem* pState) = 0;
+ const SfxPoolItem* pState,
+ const bool bIsEnabled) = 0;
};
+
+ /** This is the preferred constructor that allows the created
+ controller item to return non-empty values for GetLable() and
+ GetIcon() calls.
+ */
+ ControllerItem (
+ const sal_uInt16 nSlotId,
+ SfxBindings &rBindings,
+ ItemUpdateReceiverInterface& rItemUpdateReceiver,
+ const ::rtl::OUString& rsCommandName,
+ const cssu::Reference<css::frame::XFrame>& rxFrame);
+
+ /** This is the simpler constructor variant that still exists for
+ compatibility resons. Note that GetLabel() and GetIcon() will
+ return empty strings/images.
+ */
ControllerItem (
const sal_uInt16 nId,
SfxBindings &rBindings,
ItemUpdateReceiverInterface& rItemUpdateReceiver);
+
virtual ~ControllerItem (void);
+ /** Returns </TRUE> when the slot/command has not been disabled.
+ Changes of this state are notified via the
+ ItemUpdateReceiverInterface::NotifyContextChang() method.
+ */
+ bool IsEnabled (void) const;
+
+ /** Force the controller item to call its NotifyItemUpdate
+ callback with up-to-date data.
+ */
+ void RequestUpdate (void);
+
+ /** Return the label for the command. It contains the keyboard
+ accelerator when one exists.
+ */
+ ::rtl::OUString GetLabel (void) const;
+
+ /** Return the icon for the command. Uses the system high contrast mode
state.
+ */
+ Image GetIcon (void) const;
+
+ /** Return the icon for the command. Allows the user to override
+ the high contrast mode state.
+ */
+ Image GetIcon (const bool bIsHighContrastMode) const;
+
+ /** Convenience method for setting all relevant properties for the
+ slot/command represented by the called object at the given tool
+ box.
+ */
+ void SetupToolBoxItem (ToolBox& rToolBox, const sal_uInt16 nIndex);
+
+ /** Do not call. Used by local class only. Should be a member of
+ a local and hidden interface.
+ */
+ void NotifyFrameContextChange (void);
+ /** Do not call. Used by local class only. Should be a member of
+ a local and hidden interface.
+ */
+ void ResetFrame (void);
+
+protected:
virtual void StateChanged (sal_uInt16 nSId, SfxItemState eState, const
SfxPoolItem* pState);
private:
ItemUpdateReceiverInterface& mrItemUpdateReceiver;
+ cssu::Reference<css::frame::XFrame> mxFrame;
+ cssu::Reference<css::lang::XComponent> mxFrameActionListener;
+ const ::rtl::OUString msCommandName;
+
+ void SetupCommandURL (const sal_Char* sCommandName);
};
} } // end of namespace sfx2::sidebar
Added: openoffice/trunk/main/sfx2/source/sidebar/CommandInfoProvider.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/source/sidebar/CommandInfoProvider.cxx?rev=1469765&view=auto
==============================================================================
--- openoffice/trunk/main/sfx2/source/sidebar/CommandInfoProvider.cxx (added)
+++ openoffice/trunk/main/sfx2/source/sidebar/CommandInfoProvider.cxx Fri Apr
19 09:51:45 2013
@@ -0,0 +1,359 @@
+/**************************************************************
+ *
+ * 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
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *************************************************************/
+
+#include "precompiled_sfx2.hxx"
+
+#include "CommandInfoProvider.hxx"
+
+#include <comphelper/processfactory.hxx>
+#include <svtools/acceleratorexecute.hxx>
+#include <cppuhelper/compbase1.hxx>
+#include <cppuhelper/basemutex.hxx>
+
+#include <com/sun/star/frame/XModuleManager.hpp>
+#include <com/sun/star/ui/XUIConfigurationManagerSupplier.hpp>
+#include <com/sun/star/ui/XModuleUIConfigurationManagerSupplier.hpp>
+
+using namespace css;
+using namespace cssu;
+using ::rtl::OUString;
+
+
+#define A2S(s) rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(s))
+
+
+namespace
+{
+ typedef ::cppu::WeakComponentImplHelper1 <
+ css::lang::XEventListener
+ > FrameListenerInterfaceBase;
+ class FrameListener
+ : public ::cppu::BaseMutex,
+ public FrameListenerInterfaceBase
+ {
+ public:
+ FrameListener (sfx2::sidebar::CommandInfoProvider& rInfoProvider,
const Reference<frame::XFrame>& rxFrame)
+ : FrameListenerInterfaceBase(m_aMutex),
+ mrInfoProvider(rInfoProvider),
+ mxFrame(rxFrame)
+ {
+ if (mxFrame.is())
+ mxFrame->addEventListener(this);
+ }
+ virtual ~FrameListener (void)
+ {
+ }
+ virtual void SAL_CALL disposing (void)
+ {
+ if (mxFrame.is())
+ mxFrame->removeEventListener(this);
+ }
+ virtual void SAL_CALL disposing (const css::lang::EventObject& rEvent)
+ throw (cssu::RuntimeException)
+ {
+ (void)rEvent;
+ mrInfoProvider.SetFrame(NULL);
+ mxFrame = NULL;
+ }
+
+ private:
+ sfx2::sidebar::CommandInfoProvider& mrInfoProvider;
+ Reference<frame::XFrame> mxFrame;
+ };
+}
+
+
+
+namespace sfx2 { namespace sidebar {
+
+CommandInfoProvider& CommandInfoProvider::Instance (void)
+{
+ static CommandInfoProvider aProvider;
+ return aProvider;
+}
+
+
+
+
+CommandInfoProvider::CommandInfoProvider (void)
+ : mxServiceFactory(comphelper::getProcessServiceFactory()),
+ mxCachedDataFrame(),
+ mxCachedDocumentAcceleratorConfiguration(),
+ mxCachedModuleAcceleratorConfiguration(),
+ mxCachedGlobalAcceleratorConfiguration(),
+ msCachedModuleIdentifier(),
+ mxFrameListener()
+{
+}
+
+
+
+
+CommandInfoProvider::~CommandInfoProvider (void)
+{
+ if (mxFrameListener.is())
+ {
+ mxFrameListener->dispose();
+ mxFrameListener = NULL;
+ }
+}
+
+
+
+
+OUString CommandInfoProvider::GetLabelForCommand (
+ const OUString& rsCommandName,
+ const Reference<frame::XFrame>& rxFrame)
+{
+ SetFrame(rxFrame);
+
+ const OUString sLabel (GetCommandLabel(rsCommandName));
+ const OUString sShortCut (GetCommandShortcut(rsCommandName));
+ if (sShortCut.getLength() > 0)
+ return sLabel + A2S(" (") + sShortCut + A2S(")");
+ else
+ return sLabel;
+}
+
+
+
+
+void CommandInfoProvider::SetFrame (const Reference<frame::XFrame>& rxFrame)
+{
+ if (rxFrame != mxCachedDataFrame)
+ {
+ // Detach from the old frame.
+ if (mxFrameListener.is())
+ {
+ mxFrameListener->dispose();
+ mxFrameListener = NULL;
+ }
+
+ // Release objects that are tied to the old frame.
+ mxCachedDocumentAcceleratorConfiguration = NULL;
+ mxCachedModuleAcceleratorConfiguration = NULL;
+ msCachedModuleIdentifier = OUString();
+ mxCachedDataFrame = rxFrame;
+
+ // Connect to the new frame.
+ if (rxFrame.is())
+ mxFrameListener = new FrameListener(*this, rxFrame);
+ }
+}
+
+
+
+
+Reference<ui::XAcceleratorConfiguration>
CommandInfoProvider::GetDocumentAcceleratorConfiguration (void)
+{
+ if ( ! mxCachedDocumentAcceleratorConfiguration.is())
+ {
+ // Get the accelerator configuration for the document.
+ if (mxCachedDataFrame.is())
+ {
+ Reference<frame::XController> xController =
mxCachedDataFrame->getController();
+ if (xController.is())
+ {
+ Reference<frame::XModel> xModel (xController->getModel());
+ if (xModel.is())
+ {
+ Reference<ui::XUIConfigurationManagerSupplier> xSupplier
(xModel, UNO_QUERY);
+ if (xSupplier.is())
+ {
+ Reference<ui::XUIConfigurationManager>
xConfigurationManager(
+ xSupplier->getUIConfigurationManager(),
+ UNO_QUERY);
+ if (xConfigurationManager.is())
+ {
+ mxCachedDocumentAcceleratorConfiguration =
Reference<ui::XAcceleratorConfiguration>(
+ xConfigurationManager->getShortCutManager(),
+ UNO_QUERY);
+ }
+ }
+ }
+ }
+ }
+ }
+ return mxCachedDocumentAcceleratorConfiguration;
+}
+
+
+
+
+Reference<ui::XAcceleratorConfiguration>
CommandInfoProvider::GetModuleAcceleratorConfiguration (void)
+{
+ if ( ! mxCachedModuleAcceleratorConfiguration.is())
+ {
+ try
+ {
+ Reference<ui::XModuleUIConfigurationManagerSupplier> xSupplier (
+
mxServiceFactory->createInstance(A2S("com.sun.star.ui.ModuleUIConfigurationManagerSupplier")),
+ UNO_QUERY);
+ Reference<ui::XUIConfigurationManager> xManager (
+ xSupplier->getUIConfigurationManager(GetModuleIdentifier()));
+ if (xManager.is())
+ {
+ mxCachedModuleAcceleratorConfiguration =
Reference<ui::XAcceleratorConfiguration>(
+ xManager->getShortCutManager(),
+ UNO_QUERY);
+ }
+ }
+ catch (Exception&)
+ {
+ }
+ }
+ return mxCachedModuleAcceleratorConfiguration;
+}
+
+
+
+
+Reference<ui::XAcceleratorConfiguration>
CommandInfoProvider::GetGlobalAcceleratorConfiguration (void)
+{
+ // Get the global accelerator configuration.
+ if ( ! mxCachedGlobalAcceleratorConfiguration.is())
+ {
+ mxCachedGlobalAcceleratorConfiguration =
Reference<ui::XAcceleratorConfiguration>(
+
mxServiceFactory->createInstance(A2S("com.sun.star.ui.GlobalAcceleratorConfiguration")),
+ UNO_QUERY);
+ }
+
+ return mxCachedGlobalAcceleratorConfiguration;
+}
+
+
+
+
+OUString CommandInfoProvider::GetModuleIdentifier (void)
+{
+ if (msCachedModuleIdentifier.getLength() == 0)
+ {
+ Reference<frame::XModuleManager> xModuleManager (
+
mxServiceFactory->createInstance(A2S("com.sun.star.frame.ModuleManager")),
+ UNO_QUERY);
+ if (xModuleManager.is())
+ msCachedModuleIdentifier =
xModuleManager->identify(mxCachedDataFrame);
+ }
+ return msCachedModuleIdentifier;
+}
+
+
+
+
+OUString CommandInfoProvider::GetCommandShortcut (const OUString&
rsCommandName)
+{
+ OUString sShortcut;
+
+ sShortcut =
RetrieveShortcutsFromConfiguration(GetDocumentAcceleratorConfiguration(),
rsCommandName);
+ if (sShortcut.getLength() > 0)
+ return sShortcut;
+
+ sShortcut =
RetrieveShortcutsFromConfiguration(GetModuleAcceleratorConfiguration(),
rsCommandName);
+ if (sShortcut.getLength() > 0)
+ return sShortcut;
+
+ sShortcut =
RetrieveShortcutsFromConfiguration(GetGlobalAcceleratorConfiguration(),
rsCommandName);
+ if (sShortcut.getLength() > 0)
+ return sShortcut;
+
+ return OUString();
+}
+
+
+
+
+OUString CommandInfoProvider::RetrieveShortcutsFromConfiguration(
+ const Reference<ui::XAcceleratorConfiguration>& rxConfiguration,
+ const OUString& rsCommandName)
+{
+ if (rxConfiguration.is())
+ {
+ try
+ {
+ Sequence<OUString> aCommands(1);
+ aCommands[0] = rsCommandName;
+
+ Sequence<Any> aKeyCodes
(rxConfiguration->getPreferredKeyEventsForCommandList(aCommands));
+ if (aCommands.getLength() == 1)
+ {
+ css::awt::KeyEvent aKeyEvent;
+ if (aKeyCodes[0] >>= aKeyEvent)
+ {
+ return
svt::AcceleratorExecute::st_AWTKey2VCLKey(aKeyEvent).GetName();
+ }
+ }
+ }
+ catch (lang::IllegalArgumentException&)
+ {
+ }
+ }
+ return OUString();
+}
+
+
+
+
+Sequence<beans::PropertyValue> CommandInfoProvider::GetCommandProperties
(const OUString& rsCommandName)
+{
+ Sequence<beans::PropertyValue> aProperties;
+
+ try
+ {
+ const OUString sModuleIdentifier (GetModuleIdentifier());
+ if (sModuleIdentifier.getLength() > 0)
+ {
+ Reference<container::XNameAccess> xNameAccess (
+ mxServiceFactory->createInstance(
+
OUString::createFromAscii("com.sun.star.frame.UICommandDescription")),
+ UNO_QUERY);
+ Reference<container::XNameAccess> xUICommandLabels;
+ if (xNameAccess.is())
+ if (xNameAccess->getByName(sModuleIdentifier) >>=
xUICommandLabels)
+ xUICommandLabels->getByName(rsCommandName) >>= aProperties;
+ }
+ }
+ catch (Exception&)
+ {
+ }
+
+ return aProperties;
+}
+
+
+
+
+OUString CommandInfoProvider::GetCommandLabel (const OUString& rsCommandName)
+{
+ const Sequence<beans::PropertyValue> aProperties
(GetCommandProperties(rsCommandName));
+ for (sal_Int32 nIndex=0; nIndex<aProperties.getLength(); ++nIndex)
+ {
+ if (aProperties[nIndex].Name.equalsAscii("Name"))
+ {
+ OUString sLabel;
+ aProperties[nIndex].Value >>= sLabel;
+ return sLabel;
+ }
+ }
+ return OUString();
+}
+
+
+} } // end of namespace sfx2/framework
Added: openoffice/trunk/main/sfx2/source/sidebar/CommandInfoProvider.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/source/sidebar/CommandInfoProvider.hxx?rev=1469765&view=auto
==============================================================================
--- openoffice/trunk/main/sfx2/source/sidebar/CommandInfoProvider.hxx (added)
+++ openoffice/trunk/main/sfx2/source/sidebar/CommandInfoProvider.hxx Fri Apr
19 09:51:45 2013
@@ -0,0 +1,96 @@
+/**************************************************************
+ *
+ * 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
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *************************************************************/
+
+#ifndef SIDEBAR_COMMAND_INFO_PROVIDER_HXX
+#define SIDEBAR_COMMAND_INFO_PROVIDER_HXX
+
+#include <com/sun/star/frame/XFrame.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/ui/XAcceleratorConfiguration.hpp>
+
+
+namespace css = ::com::sun::star;
+namespace cssu = ::com::sun::star::uno;
+
+namespace sfx2 { namespace sidebar {
+
+/** Provide information about UNO commands like tooltip text with
+ keyboard accelerator.
+*/
+class CommandInfoProvider
+{
+public:
+ /** Return the singleton instance.
+
+ It caches some objects for the last XFrame object given to
+ GetLabelForCommand. These objects are release and created new
+ when that method is called with a different XFrame from the
+ last call.
+
+ Lifetime control should work but could be more elegant.
+ */
+ static CommandInfoProvider& Instance (void);
+
+ /** Return a label for the given command.
+ @param rsCommandName
+ The command name is expected to start with .uno:
+ @param rxFrame
+ The frame is used to identify the module and document.
+ @return
+ The returned label contains the keyboard accelerator, if
+ one is defined.
+ */
+ ::rtl::OUString GetLabelForCommand (
+ const ::rtl::OUString& rsCommandName,
+ const cssu::Reference<css::frame::XFrame>& rxFrame);
+
+ /** Do not call. Should be part of a local and hidden interface.
+ */
+ void SetFrame (const cssu::Reference<css::frame::XFrame>& rxFrame);
+
+ private:
+ cssu::Reference<css::lang::XMultiServiceFactory> mxServiceFactory;
+ cssu::Reference<css::frame::XFrame> mxCachedDataFrame;
+ cssu::Reference<css::ui::XAcceleratorConfiguration>
mxCachedDocumentAcceleratorConfiguration;
+ cssu::Reference<css::ui::XAcceleratorConfiguration>
mxCachedModuleAcceleratorConfiguration;
+ cssu::Reference<css::ui::XAcceleratorConfiguration>
mxCachedGlobalAcceleratorConfiguration;
+ ::rtl::OUString msCachedModuleIdentifier;
+ cssu::Reference<css::lang::XComponent> mxFrameListener;
+
+ CommandInfoProvider (void);
+ ~CommandInfoProvider (void);
+
+ cssu::Reference<css::ui::XAcceleratorConfiguration>
GetDocumentAcceleratorConfiguration (void);
+ cssu::Reference<css::ui::XAcceleratorConfiguration>
GetModuleAcceleratorConfiguration (void);
+ cssu::Reference<css::ui::XAcceleratorConfiguration>
GetGlobalAcceleratorConfiguration(void);
+ ::rtl::OUString GetModuleIdentifier (void);
+ ::rtl::OUString GetCommandShortcut (const ::rtl::OUString& rCommandName);
+ cssu::Sequence<css::beans::PropertyValue> GetCommandProperties (
+ const ::rtl::OUString& rsCommandName);
+ ::rtl::OUString GetCommandLabel (const ::rtl::OUString& rsCommandName);
+ rtl::OUString RetrieveShortcutsFromConfiguration(
+ const cssu::Reference<css::ui::XAcceleratorConfiguration>&
rxConfiguration,
+ const rtl::OUString& rsCommandName);
+};
+
+} } // end of namespace sfx2/framework
+
+#endif
Modified: openoffice/trunk/main/sfx2/source/sidebar/ControllerItem.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/source/sidebar/ControllerItem.cxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/source/sidebar/ControllerItem.cxx (original)
+++ openoffice/trunk/main/sfx2/source/sidebar/ControllerItem.cxx Fri Apr 19
09:51:45 2013
@@ -23,14 +23,102 @@
#include "sidebar/ControllerItem.hxx"
+#include <sfx2/msgpool.hxx>
+#include <sfx2/viewsh.hxx>
+#include "sfx2/imagemgr.hxx"
+#include "sfx2/bindings.hxx"
+#include <unotools/cmdoptions.hxx>
+#include "CommandInfoProvider.hxx"
+#include <vcl/svapp.hxx>
+#include <vcl/toolbox.hxx>
+
+#include <com/sun/star/frame/XFrame.hpp>
+#include <com/sun/star/frame/XFrameActionListener.hpp>
+
+
+using namespace css;
+using namespace cssu;
+
+
+#define A2S(pString) (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(pString)))
+
+namespace
+{
+ typedef ::cppu::WeakComponentImplHelper1 <
+ css::frame::XFrameActionListener
+ > FrameActionListenerInterfaceBase;
+
+ class FrameActionListener
+ : public ::cppu::BaseMutex,
+ public FrameActionListenerInterfaceBase
+ {
+ public:
+ FrameActionListener (
+ sfx2::sidebar::ControllerItem& rControllerItem,
+ const Reference<frame::XFrame>& rxFrame)
+ : FrameActionListenerInterfaceBase(m_aMutex),
+ mrControllerItem(rControllerItem),
+ mxFrame(rxFrame)
+ {
+ if (mxFrame.is())
+ mxFrame->addFrameActionListener(this);
+ }
+ virtual ~FrameActionListener (void)
+ {
+ }
+ virtual void SAL_CALL disposing (void)
+ {
+ if (mxFrame.is())
+ mxFrame->removeFrameActionListener(this);
+ }
+ virtual void SAL_CALL disposing (const css::lang::EventObject& rEvent)
+ throw (cssu::RuntimeException)
+ {
+ (void)rEvent;
+ mrControllerItem.ResetFrame();
+ mxFrame = NULL;
+ }
+ virtual void SAL_CALL frameAction (const css::frame::FrameActionEvent&
rEvent)
+ throw (cssu::RuntimeException)
+ {
+ if (rEvent.Action == frame::FrameAction_CONTEXT_CHANGED)
+ mrControllerItem.NotifyFrameContextChange();
+ }
+
+ private:
+ sfx2::sidebar::ControllerItem& mrControllerItem;
+ Reference<frame::XFrame> mxFrame;
+ };
+}
+
namespace sfx2 { namespace sidebar {
ControllerItem::ControllerItem (
- const sal_uInt16 nId,
+ const sal_uInt16 nSlotId,
SfxBindings &rBindings,
ItemUpdateReceiverInterface& rItemUpdateReceiver)
- : SfxControllerItem(nId, rBindings),
- mrItemUpdateReceiver(rItemUpdateReceiver)
+ : SfxControllerItem(nSlotId, rBindings),
+ mrItemUpdateReceiver(rItemUpdateReceiver),
+ mxFrame(),
+ mxFrameActionListener(),
+ msCommandName()
+{
+}
+
+
+
+
+ControllerItem::ControllerItem (
+ const sal_uInt16 nSlotId,
+ SfxBindings &rBindings,
+ ItemUpdateReceiverInterface& rItemUpdateReceiver,
+ const ::rtl::OUString& rsCommandName,
+ const Reference<frame::XFrame>& rxFrame)
+ : SfxControllerItem(nSlotId, rBindings),
+ mrItemUpdateReceiver(rItemUpdateReceiver),
+ mxFrame(rxFrame),
+ mxFrameActionListener(new FrameActionListener(*this, mxFrame)),
+ msCommandName(rsCommandName)
{
}
@@ -39,6 +127,8 @@ ControllerItem::ControllerItem (
ControllerItem::~ControllerItem (void)
{
+ if (mxFrameActionListener.is())
+ mxFrameActionListener->dispose();
}
@@ -49,10 +139,95 @@ void ControllerItem::StateChanged (
SfxItemState eState,
const SfxPoolItem* pState)
{
- mrItemUpdateReceiver.NotifyItemUpdate(nSID, eState, pState);
+ mrItemUpdateReceiver.NotifyItemUpdate(nSID, eState, pState, IsEnabled());
+}
+
+
+
+
+bool ControllerItem::IsEnabled (void) const
+{
+ if ( !
SvtCommandOptions().HasEntries(SvtCommandOptions::CMDOPTION_DISABLED))
+ {
+ // There are no disabled commands.
+ return true;
+ }
+ else if (msCommandName.getLength() == 0)
+ {
+ // We were not given a command name at construction and can
+ // not check the state now. Assume the best and return true.
+ return true;
+ }
+ else if (SvtCommandOptions().Lookup(SvtCommandOptions::CMDOPTION_DISABLED,
msCommandName))
+ {
+ // The command is part of a list of disabled commands.
+ return false;
+ }
+ else
+ return true;
+}
+
+
+
+
+void ControllerItem::RequestUpdate (void)
+{
+ SfxPoolItem* pState = NULL;
+ const SfxItemState eState (GetBindings().QueryState(GetId(), pState));
+ mrItemUpdateReceiver.NotifyItemUpdate(GetId(), eState, pState,
IsEnabled());
+}
+
+
+
+
+void ControllerItem::NotifyFrameContextChange (void)
+{
+ RequestUpdate();
+}
+
+
+
+
+void ControllerItem::ResetFrame (void)
+{
+ mxFrame = NULL;
+}
+
+
+
+
+::rtl::OUString ControllerItem::GetLabel (void) const
+{
+ return CommandInfoProvider::Instance().GetLabelForCommand(
+ A2S(".uno:")+msCommandName,
+ mxFrame);
+}
+
+
+
+
+Image ControllerItem::GetIcon (void) const
+{
+ return
GetIcon(Application::GetSettings().GetStyleSettings().GetHighContrastMode());
+}
+
+
+
+
+Image ControllerItem::GetIcon (const bool bIsHighContrastMode) const
+{
+ return GetImage(mxFrame, A2S(".uno:")+msCommandName, sal_False,
bIsHighContrastMode);
+
}
+void ControllerItem::SetupToolBoxItem (ToolBox& rToolBox, const sal_uInt16
nIndex)
+{
+ rToolBox.SetQuickHelpText(nIndex, GetLabel());
+ rToolBox.SetItemImage(nIndex, GetIcon());
+}
+
+
} } // end of namespace sfx2::sidebar
Modified: openoffice/trunk/main/sfx2/source/sidebar/Deck.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/source/sidebar/Deck.cxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/source/sidebar/Deck.cxx (original)
+++ openoffice/trunk/main/sfx2/source/sidebar/Deck.cxx Fri Apr 19 09:51:45 2013
@@ -282,7 +282,7 @@ const char* GetWindowClassification (con
void Deck::PrintWindowSubTree (Window* pRoot, int nIndentation)
{
- static char* sIndentation = "
";
+ static const char* sIndentation = "
";
const Point aLocation (pRoot->GetPosPixel());
const Size aSize (pRoot->GetSizePixel());
const char* sClassification = GetWindowClassification(pRoot);
Modified: openoffice/trunk/main/sfx2/source/sidebar/DeckLayouter.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/source/sidebar/DeckLayouter.cxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/source/sidebar/DeckLayouter.cxx (original)
+++ openoffice/trunk/main/sfx2/source/sidebar/DeckLayouter.cxx Fri Apr 19
09:51:45 2013
@@ -353,7 +353,6 @@ void DeckLayouter::DistributeHeights (
// (either its minimum or preferred height) and the container height.
sal_Int32 nTotalWeight (0);
sal_Int32 nNoMaximumCount (0);
- sal_Int32 nIndex (0);
IterateLayoutItems(iItem,rLayoutItems)
{
if (iItem->maLayoutSize.Maximum == 0)
@@ -376,7 +375,6 @@ void DeckLayouter::DistributeHeights (
return;
// First pass of height distribution.
- nIndex = 0;
IterateLayoutItems(iItem,rLayoutItems)
{
const sal_Int32 nBaseHeight (
@@ -410,7 +408,6 @@ void DeckLayouter::DistributeHeights (
// Handle rounding error.
sal_Int32 nAdditionalHeightForFirstPanel (nRemainingHeightToDistribute
- nNoMaximumCount*nAdditionalHeightPerPanel);
- nIndex = 0;
IterateLayoutItems(iItem,rLayoutItems)
{
if (iItem->maLayoutSize.Maximum < 0)
Modified: openoffice/trunk/main/sfx2/source/sidebar/FocusManager.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/source/sidebar/FocusManager.cxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/source/sidebar/FocusManager.cxx (original)
+++ openoffice/trunk/main/sfx2/source/sidebar/FocusManager.cxx Fri Apr 19
09:51:45 2013
@@ -47,11 +47,12 @@ namespace
if (rPanel.HasFocus())
return PC_Content;
else if (rPanel.GetTitleBar() != NULL)
+ {
if (rPanel.GetTitleBar()->HasFocus())
return PC_TitleBar;
else if (rPanel.GetTitleBar()->GetToolBox().HasFocus())
return PC_ToolBox;
-
+ }
return PC_None;
}
}
Modified: openoffice/trunk/main/sfx2/source/sidebar/SidebarChildWindow.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/source/sidebar/SidebarChildWindow.cxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/source/sidebar/SidebarChildWindow.cxx (original)
+++ openoffice/trunk/main/sfx2/source/sidebar/SidebarChildWindow.cxx Fri Apr 19
09:51:45 2013
@@ -35,23 +35,25 @@ SFX_IMPL_DOCKINGWINDOW(SidebarChildWindo
SidebarChildWindow::SidebarChildWindow (
- Window* pParent,
+ Window* pParentWindow,
sal_uInt16 nId,
SfxBindings* pBindings,
- SfxChildWinInfo* pInfo )
- : SfxChildWindow(pParent, nId)
+ SfxChildWinInfo* pInfo)
+ : SfxChildWindow(pParentWindow, nId)
{
this->pWindow = new SidebarDockingWindow(
pBindings,
*this,
- pParent,
+ pParentWindow,
WB_STDDOCKWIN | WB_OWNERDRAWDECORATION | WB_CLIPCHILDREN | WB_SIZEABLE
| WB_3DLOOK | WB_ROLLABLE);
eChildAlignment = SFX_ALIGN_RIGHT;
this->pWindow->SetHelpId(HID_SIDEBAR_WINDOW);
this->pWindow->SetOutputSizePixel(Size(300, 450));
- dynamic_cast<SfxDockingWindow*>(pWindow)->Initialize(pInfo);
+ SfxDockingWindow* pDockingParent =
dynamic_cast<SfxDockingWindow*>(pParentWindow);
+ if (pDockingParent != NULL)
+ pDockingParent->Initialize(pInfo);
SetHideNotDelete(sal_True);
this->pWindow->Show();
Modified: openoffice/trunk/main/svx/Library_svx.mk
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svx/Library_svx.mk?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/svx/Library_svx.mk (original)
+++ openoffice/trunk/main/svx/Library_svx.mk Fri Apr 19 09:51:45 2013
@@ -47,6 +47,7 @@ $(eval $(call gb_Library_add_linked_libs
cppu \
drawinglayer \
editeng \
+ fwk \
i18nisolang1 \
icuuc \
sal \
Modified: openoffice/trunk/main/svx/source/sidebar/area/AreaPropertyPanel.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sidebar/area/AreaPropertyPanel.cxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sidebar/area/AreaPropertyPanel.cxx
(original)
+++ openoffice/trunk/main/svx/source/sidebar/area/AreaPropertyPanel.cxx Fri Apr
19 09:51:45 2013
@@ -747,8 +747,11 @@ void AreaPropertyPanel::ImpUpdateTranspa
void AreaPropertyPanel::NotifyItemUpdate(
sal_uInt16 nSID,
SfxItemState eState,
- const SfxPoolItem* pState)
-{
+ const SfxPoolItem* pState,
+ const bool bIsEnabled)
+{
+ (void)bIsEnabled;
+
XFillStyle eXFS;
SfxObjectShell* pSh = SfxObjectShell::Current();
bool bFillTransparenceChanged(false);
@@ -1054,6 +1057,7 @@ void AreaPropertyPanel::NotifyItemUpdate
+
SfxBindings* AreaPropertyPanel::GetBindings()
{
return mpBindings;
Modified: openoffice/trunk/main/svx/source/sidebar/area/AreaPropertyPanel.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sidebar/area/AreaPropertyPanel.hxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sidebar/area/AreaPropertyPanel.hxx
(original)
+++ openoffice/trunk/main/svx/source/sidebar/area/AreaPropertyPanel.hxx Fri Apr
19 09:51:45 2013
@@ -69,7 +69,8 @@ public:
virtual void NotifyItemUpdate(
const sal_uInt16 nSId,
const SfxItemState eState,
- const SfxPoolItem* pState);
+ const SfxPoolItem* pState,
+ const bool bIsEnabled);
SfxBindings* GetBindings();
Modified:
openoffice/trunk/main/svx/source/sidebar/graphic/GraphicPropertyPanel.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sidebar/graphic/GraphicPropertyPanel.cxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sidebar/graphic/GraphicPropertyPanel.cxx
(original)
+++ openoffice/trunk/main/svx/source/sidebar/graphic/GraphicPropertyPanel.cxx
Fri Apr 19 09:51:45 2013
@@ -276,8 +276,11 @@ void GraphicPropertyPanel::DataChanged(
void GraphicPropertyPanel::NotifyItemUpdate(
sal_uInt16 nSID,
SfxItemState eState,
- const SfxPoolItem* pState)
+ const SfxPoolItem* pState,
+ const bool bIsEnabled)
{
+ (void)bIsEnabled;
+
switch( nSID )
{
case SID_ATTR_GRAF_LUMINANCE:
@@ -443,6 +446,9 @@ void GraphicPropertyPanel::NotifyItemUpd
}
}
+
+
+
//////////////////////////////////////////////////////////////////////////////
SfxBindings* GraphicPropertyPanel::GetBindings()
Modified:
openoffice/trunk/main/svx/source/sidebar/graphic/GraphicPropertyPanel.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sidebar/graphic/GraphicPropertyPanel.hxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sidebar/graphic/GraphicPropertyPanel.hxx
(original)
+++ openoffice/trunk/main/svx/source/sidebar/graphic/GraphicPropertyPanel.hxx
Fri Apr 19 09:51:45 2013
@@ -52,7 +52,8 @@ public:
virtual void NotifyItemUpdate(
const sal_uInt16 nSId,
const SfxItemState eState,
- const SfxPoolItem* pState);
+ const SfxPoolItem* pState,
+ const bool bIsEnabled);
SfxBindings* GetBindings();
Modified: openoffice/trunk/main/svx/source/sidebar/line/LinePropertyPanel.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sidebar/line/LinePropertyPanel.cxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sidebar/line/LinePropertyPanel.cxx
(original)
+++ openoffice/trunk/main/svx/source/sidebar/line/LinePropertyPanel.cxx Fri Apr
19 09:51:45 2013
@@ -401,8 +401,11 @@ void LinePropertyPanel::DataChanged(
void LinePropertyPanel::NotifyItemUpdate(
sal_uInt16 nSID,
SfxItemState eState,
- const SfxPoolItem* pState)
+ const SfxPoolItem* pState,
+ const bool bIsEnabled)
{
+ (void)bIsEnabled;
+
switch(nSID)
{
case SID_ATTR_LINE_COLOR:
@@ -702,6 +705,7 @@ void LinePropertyPanel::NotifyItemUpdate
+
SfxBindings* LinePropertyPanel::GetBindings()
{
return mpBindings;
Modified: openoffice/trunk/main/svx/source/sidebar/line/LinePropertyPanel.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sidebar/line/LinePropertyPanel.hxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sidebar/line/LinePropertyPanel.hxx
(original)
+++ openoffice/trunk/main/svx/source/sidebar/line/LinePropertyPanel.hxx Fri Apr
19 09:51:45 2013
@@ -79,7 +79,8 @@ public:
virtual void NotifyItemUpdate(
const sal_uInt16 nSId,
const SfxItemState eState,
- const SfxPoolItem* pState);
+ const SfxPoolItem* pState,
+ const bool bIsEnabled);
SfxBindings* GetBindings();
Modified:
openoffice/trunk/main/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx
(original)
+++ openoffice/trunk/main/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx
Fri Apr 19 09:51:45 2013
@@ -1032,8 +1032,14 @@ IMPL_LINK(ParaPropertyPanel, ClickUL_Inc
}
//==================================for Paragraph State
change=====================
-void ParaPropertyPanel::NotifyItemUpdate( sal_uInt16 nSID, SfxItemState
eState, const SfxPoolItem* pState )
-{
+void ParaPropertyPanel::NotifyItemUpdate(
+ sal_uInt16 nSID,
+ SfxItemState eState,
+ const SfxPoolItem* pState,
+ const bool bIsEnabled)
+{
+ (void)bIsEnabled;
+
if( nSID == SID_ATTR_METRIC )
{
m_eMetricUnit = GetCurrentUnit(eState,pState);
@@ -1083,6 +1089,9 @@ void ParaPropertyPanel::NotifyItemUpdate
}
}
+
+
+
void ParaPropertyPanel::StateChangedAlignmentImpl( sal_uInt16 nSID,
SfxItemState eState, const SfxPoolItem* pState )
{
if( eState >= SFX_ITEM_AVAILABLE )
Modified:
openoffice/trunk/main/svx/source/sidebar/paragraph/ParaPropertyPanel.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sidebar/paragraph/ParaPropertyPanel.hxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sidebar/paragraph/ParaPropertyPanel.hxx
(original)
+++ openoffice/trunk/main/svx/source/sidebar/paragraph/ParaPropertyPanel.hxx
Fri Apr 19 09:51:45 2013
@@ -80,7 +80,8 @@ public:
virtual void NotifyItemUpdate(
const sal_uInt16 nSId,
const SfxItemState eState,
- const SfxPoolItem* pState);
+ const SfxPoolItem* pState,
+ const bool bIsEnabled);
void ShowMenu (void);
sal_uInt16 GetBulletTypeIndex(){ return mnBulletTypeIndex; }
Modified:
openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.cxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
(original)
+++ openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
Fri Apr 19 09:51:45 2013
@@ -633,7 +633,8 @@ IMPL_LINK( PosSizePropertyPanel, FlipHdl
void PosSizePropertyPanel::NotifyItemUpdate(
sal_uInt16 nSID,
SfxItemState eState,
- const SfxPoolItem* pState)
+ const SfxPoolItem* pState,
+ const bool bIsEnabled)
{
mpFtAngle->Enable();
mpMtrAngle->Enable();
@@ -956,6 +957,7 @@ void PosSizePropertyPanel::NotifyItemUpd
+
SfxBindings* PosSizePropertyPanel::GetBindings()
{
return mpBindings;
Modified:
openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.hxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.hxx
(original)
+++ openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.hxx
Fri Apr 19 09:51:45 2013
@@ -65,7 +65,8 @@ public:
virtual void NotifyItemUpdate(
const sal_uInt16 nSId,
const SfxItemState eState,
- const SfxPoolItem* pState);
+ const SfxPoolItem* pState,
+ const bool bIsEnabled);
SfxBindings* GetBindings();
void ShowMenu (void);
Modified:
openoffice/trunk/main/svx/source/sidebar/text/TextCharacterSpacingControl.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sidebar/text/TextCharacterSpacingControl.cxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
---
openoffice/trunk/main/svx/source/sidebar/text/TextCharacterSpacingControl.cxx
(original)
+++
openoffice/trunk/main/svx/source/sidebar/text/TextCharacterSpacingControl.cxx
Fri Apr 19 09:51:45 2013
@@ -32,10 +32,14 @@
#include <sfx2/sidebar/Theme.hxx>
namespace svx { namespace sidebar {
-TextCharacterSpacingControl::TextCharacterSpacingControl(Window* pParent,
svx::sidebar::TextPropertyPanel& rPanel)
+
+TextCharacterSpacingControl::TextCharacterSpacingControl (
+ Window* pParent,
+ svx::sidebar::TextPropertyPanel& rPanel,
+ SfxBindings* pBindings)
: PopupControl( pParent,SVX_RES(RID_POPUPPANEL_TEXTPAGE_SPACING))
, mrTextPropertyPanel(rPanel)
-, mpBindings(NULL)
+, mpBindings(pBindings)
, maVSSpacing (ValueSetWithTextControl::IMAGE_TEXT,this,
SVX_RES(VS_SPACING))
, maLastCus (this, SVX_RES(FT_LASTCUSTOM))
//, maBorder (this, SVX_RES(CT_BORDER))
@@ -64,7 +68,6 @@ TextCharacterSpacingControl::TextCharact
{
initial();
FreeResource();
- mpBindings = mrTextPropertyPanel.GetBindings();
Link aLink = LINK(this, TextCharacterSpacingControl, KerningSelectHdl);
maLBKerning.SetSelectHdl(aLink);
aLink =LINK(this, TextCharacterSpacingControl, KerningModifyHdl);
Modified:
openoffice/trunk/main/svx/source/sidebar/text/TextCharacterSpacingControl.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sidebar/text/TextCharacterSpacingControl.hxx?rev=1469765&r1=1469764&r2=1469765&view=diff
==============================================================================
---
openoffice/trunk/main/svx/source/sidebar/text/TextCharacterSpacingControl.hxx
(original)
+++
openoffice/trunk/main/svx/source/sidebar/text/TextCharacterSpacingControl.hxx
Fri Apr 19 09:51:45 2013
@@ -40,11 +40,15 @@ namespace svx { namespace sidebar {
#define SIDEBAR_SPACE_NORMAL 0
#define SIDEBAR_SPACE_EXPAND 1
#define SIDEBAR_SPACE_CONDENSED 2
+
class TextCharacterSpacingControl:public svx::sidebar::PopupControl
{
public:
- TextCharacterSpacingControl(Window* pParent,
svx::sidebar::TextPropertyPanel& rPanel);
- ~TextCharacterSpacingControl();
+ TextCharacterSpacingControl (
+ Window* pParent,
+ svx::sidebar::TextPropertyPanel& rPanel,
+ SfxBindings* pBindings);
+ virtual ~TextCharacterSpacingControl();
void ToGetFocus();
void Rearrange(bool bLBAvailable,bool bAvailable, long nKerning);
//virtual void Paint(const Rectangle& rect);