diff options
author | Andre Fischer <af@apache.org> | 2013-05-14 15:21:57 +0000 |
---|---|---|
committer | Michael Meeks <michael.meeks@suse.com> | 2013-05-20 11:33:35 +0100 |
commit | a9626f143a1466591764b03baa2d15905487b692 (patch) | |
tree | 410958c92408356de4f510b022518be4a5e187d8 /svx | |
parent | 6e6f8cb2b7f2173eafb988f78e9704ed1bbc4b0a (diff) |
Resolves: #i122302# Use tool bar controls for color controls...
in text property panel
(cherry picked from commit 3b252796e1126b5ec1216082f55b8d12017eaeb1)
Conflicts:
sfx2/Package_inc.mk
sfx2/inc/sfx2/sidebar/ControlFactory.hxx
sfx2/inc/sfx2/sidebar/ControllerFactory.hxx
sfx2/inc/sfx2/sidebar/EnumContext.hxx
sfx2/source/sidebar/SidebarToolBox.cxx
svx/source/sidebar/insert/InsertPropertyPanel.cxx
svx/source/sidebar/insert/InsertPropertyPanel.hxx
svx/source/sidebar/text/TextPropertyPanel.cxx
Change-Id: Ifa1947c9e9bfdc3635dbb5b0c7a79f8ead613a90
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/sidebar/PanelFactory.cxx | 5 | ||||
-rw-r--r-- | svx/source/sidebar/insert/InsertPropertyPanel.cxx | 309 | ||||
-rw-r--r-- | svx/source/sidebar/insert/InsertPropertyPanel.hxx | 32 | ||||
-rw-r--r-- | svx/source/sidebar/text/TextPropertyPanel.cxx | 190 | ||||
-rw-r--r-- | svx/source/sidebar/text/TextPropertyPanel.hrc | 4 | ||||
-rw-r--r-- | svx/source/sidebar/text/TextPropertyPanel.hxx | 24 | ||||
-rw-r--r-- | svx/source/sidebar/text/TextPropertyPanel.src | 21 |
7 files changed, 70 insertions, 515 deletions
diff --git a/svx/source/sidebar/PanelFactory.cxx b/svx/source/sidebar/PanelFactory.cxx index 7b75844cc16e..4ac410df6e8d 100644 --- a/svx/source/sidebar/PanelFactory.cxx +++ b/svx/source/sidebar/PanelFactory.cxx @@ -114,6 +114,9 @@ Reference<ui::XUIElement> SAL_CALL PanelFactory::createUIElement ( Reference<ui::XSidebar> xSidebar (aArguments.getOrDefault("Sidebar", Reference<ui::XSidebar>())); const sal_uInt64 nBindingsValue (aArguments.getOrDefault("SfxBindings", sal_uInt64(0))); SfxBindings* pBindings = reinterpret_cast<SfxBindings*>(nBindingsValue); + ::sfx2::sidebar::EnumContext aContext ( + aArguments.getOrDefault("ApplicationName", OUString()), + aArguments.getOrDefault("ContextName", OUString())); ::Window* pParentWindow = VCLUnoHelper::GetWindow(xParentWindow); if ( ! xParentWindow.is() || pParentWindow==NULL) @@ -135,7 +138,7 @@ Reference<ui::XUIElement> SAL_CALL PanelFactory::createUIElement ( #define DoesResourceEndWith(s) rsResourceURL.endsWithAsciiL(s,strlen(s)) if (DoesResourceEndWith("/TextPropertyPanel")) { - pControl = TextPropertyPanel::Create(pParentWindow, xFrame, pBindings); + pControl = TextPropertyPanel::Create(pParentWindow, xFrame, pBindings, aContext); } else if (DoesResourceEndWith("/ParaPropertyPanel")) { diff --git a/svx/source/sidebar/insert/InsertPropertyPanel.cxx b/svx/source/sidebar/insert/InsertPropertyPanel.cxx index 1207ebb378a1..cbaca0266bec 100644 --- a/svx/source/sidebar/insert/InsertPropertyPanel.cxx +++ b/svx/source/sidebar/insert/InsertPropertyPanel.cxx @@ -22,6 +22,7 @@ #include <sfx2/sidebar/Theme.hxx> #include <sfx2/sidebar/Tools.hxx> #include <sfx2/sidebar/ControlFactory.hxx> +#include <sfx2/sidebar/ControllerFactory.hxx> #include <svx/dialmgr.hxx> #include <svtools/miscopt.hxx> @@ -39,6 +40,7 @@ using namespace css; using namespace cssu; using ::rtl::OUString; +using ::sfx2::sidebar::SidebarToolBox; namespace svx { namespace sidebar { @@ -51,20 +53,17 @@ InsertPropertyPanel::InsertPropertyPanel ( mpStandardShapesBackground(sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this)), mpStandardShapesToolBox(sfx2::sidebar::ControlFactory::CreateToolBox( mpStandardShapesBackground.get(), - SVX_RES(TB_INSERT_STANDARD))), + SVX_RES(TB_INSERT_STANDARD), + rxFrame)), mpCustomShapesBackground(sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this)), mpCustomShapesToolBox(sfx2::sidebar::ControlFactory::CreateToolBox( mpCustomShapesBackground.get(), - SVX_RES(TB_INSERT_CUSTOM))), - maControllers(), + SVX_RES(TB_INSERT_CUSTOM), + rxFrame)), mxFrame(rxFrame) { - SetupToolBox(*mpStandardShapesToolBox); - SetupToolBox(*mpCustomShapesToolBox); FreeResource(); - UpdateIcons(); - mpStandardShapesToolBox->Show(); mpCustomShapesToolBox->Show(); @@ -80,17 +79,6 @@ InsertPropertyPanel::InsertPropertyPanel ( InsertPropertyPanel::~InsertPropertyPanel (void) { - ControllerContainer aControllers; - aControllers.swap(maControllers); - for (ControllerContainer::iterator iController(aControllers.begin()), iEnd(aControllers.end()); - iController!=iEnd; - ++iController) - { - Reference<lang::XComponent> xComponent (iController->second.mxController, UNO_QUERY); - if (xComponent.is()) - xComponent->dispose(); - } - // Remove window child listener. Window* pTopWindow = this; while (pTopWindow->GetParent() != NULL) @@ -106,88 +94,6 @@ InsertPropertyPanel::~InsertPropertyPanel (void) -void InsertPropertyPanel::SetupToolBox (ToolBox& rToolBox) -{ - const sal_uInt16 nItemCount (rToolBox.GetItemCount()); - for (sal_uInt16 nItemIndex=0; nItemIndex<nItemCount; ++nItemIndex) - CreateController(rToolBox.GetItemId(nItemIndex)); - - rToolBox.SetDropdownClickHdl(LINK(this, InsertPropertyPanel, DropDownClickHandler)); - rToolBox.SetClickHdl(LINK(this, InsertPropertyPanel, ClickHandler)); - rToolBox.SetDoubleClickHdl(LINK(this, InsertPropertyPanel, DoubleClickHandler)); - rToolBox.SetSelectHdl(LINK(this, InsertPropertyPanel, SelectHandler)); - rToolBox.SetActivateHdl(LINK(this, InsertPropertyPanel, ActivateToolBox)); - rToolBox.SetDeactivateHdl(LINK(this, InsertPropertyPanel, DeactivateToolBox)); - - rToolBox.SetSizePixel(rToolBox.CalcWindowSizePixel()); -} - - - - -IMPL_LINK(InsertPropertyPanel, DropDownClickHandler, ToolBox*, pToolBox) -{ - if (pToolBox != NULL) - { - Reference<frame::XToolbarController> xController (GetControllerForItemId(pToolBox->GetCurItemId())); - if (xController.is()) - { - Reference<awt::XWindow> xWindow = xController->createPopupWindow(); - if (xWindow.is() ) - xWindow->setFocus(); - } - } - return 1; -} - - - - -IMPL_LINK(InsertPropertyPanel, ClickHandler, ToolBox*, pToolBox) -{ - if (pToolBox == NULL) - return 0; - - Reference<frame::XToolbarController> xController (GetControllerForItemId(pToolBox->GetCurItemId())); - if (xController.is()) - xController->click(); - - return 1; -} - - - - -IMPL_LINK(InsertPropertyPanel, DoubleClickHandler, ToolBox*, pToolBox) -{ - if (pToolBox == NULL) - return 0; - - Reference<frame::XToolbarController> xController (GetControllerForItemId(pToolBox->GetCurItemId())); - if (xController.is()) - xController->doubleClick(); - - return 1; -} - - - - -IMPL_LINK(InsertPropertyPanel, SelectHandler, ToolBox*, pToolBox) -{ - if (pToolBox == NULL) - return 0; - - Reference<frame::XToolbarController> xController (GetControllerForItemId(pToolBox->GetCurItemId())); - if (xController.is()) - xController->execute((sal_Int16)pToolBox->GetModifier()); - - return 1; -} - - - - IMPL_LINK(InsertPropertyPanel, WindowEventListener, VclSimpleEvent*, pEvent) { // We will be getting a lot of window events (well, basically all @@ -200,7 +106,8 @@ IMPL_LINK(InsertPropertyPanel, WindowEventListener, VclSimpleEvent*, pEvent) if (pEvent->GetId() != VCLEVENT_TOOLBOX_SELECT) return 1; - ToolBox* pToolBox = dynamic_cast<ToolBox*>(dynamic_cast<VclWindowEvent*>(pEvent)->GetWindow()); + Window* pWindow = dynamic_cast<VclWindowEvent*>(pEvent)->GetWindow(); + ToolBox* pToolBox = dynamic_cast<ToolBox*>(pWindow); if (pToolBox == NULL) return 1; @@ -217,199 +124,29 @@ IMPL_LINK(InsertPropertyPanel, WindowEventListener, VclSimpleEvent*, pEvent) if (nId == 0) return 1; - // Get toolbar controller. - const sal_uInt16 nItemId (GetItemIdForSubToolbarName(aURL.Path)); - Reference<frame::XSubToolbarController> xController (GetControllerForItemId(nItemId), UNO_QUERY); + SidebarToolBox* pSidebarToolBox = dynamic_cast<SidebarToolBox*>(mpStandardShapesToolBox.get()); + if (pSidebarToolBox == NULL) + return 1; + sal_uInt16 nItemId (pSidebarToolBox->GetItemIdForSubToolbarName(aURL.Path)); + if (nItemId == 0) + { + pSidebarToolBox = dynamic_cast<SidebarToolBox*>(mpCustomShapesToolBox.get()); + if (pSidebarToolBox == NULL) + return 1; + nItemId = pSidebarToolBox->GetItemIdForSubToolbarName(aURL.Path); + if (nItemId == 0) + return 1; + } + + Reference<frame::XSubToolbarController> xController (pSidebarToolBox->GetControllerForItemId(nItemId), UNO_QUERY); if ( ! xController.is()) return 1; const OUString sCommand (pToolBox->GetItemCommand(nId)); - ControllerContainer::iterator iController (maControllers.find(nItemId)); - if (iController != maControllers.end()) - iController->second.msCurrentCommand = sCommand; xController->functionSelected(sCommand); - const sal_Bool bBigImages (SvtMiscOptions().AreCurrentSymbolsLarge()); - Image aImage (framework::GetImageFromURL(mxFrame, sCommand, bBigImages)); - pToolBox->SetItemImage(iController->first, aImage); - - return 1; -} - - - - -IMPL_LINK(InsertPropertyPanel, ActivateToolBox, ToolBox*, EMPTYARG) -{ - return 1; -} - - - - -IMPL_LINK(InsertPropertyPanel, DeactivateToolBox, ToolBox*, EMPTYARG) -{ return 1; } - - -void InsertPropertyPanel::CreateController ( - const sal_uInt16 nItemId) -{ - ToolBox* pToolBox = GetToolBoxForItemId(nItemId); - if (pToolBox != NULL) - { - ItemDescriptor aDescriptor; - - const OUString sCommandName (pToolBox->GetItemCommand(nItemId)); - - // Create a controller for the new item. - aDescriptor.mxController.set( - static_cast<XWeak*>(::framework::CreateToolBoxController( - mxFrame, - pToolBox, - nItemId, - sCommandName)), - UNO_QUERY); - if ( ! aDescriptor.mxController.is()) - aDescriptor.mxController.set( - static_cast<XWeak*>(new svt::GenericToolboxController( - ::comphelper::getProcessComponentContext(), - mxFrame, - pToolBox, - nItemId, - sCommandName)), - UNO_QUERY); - if ( ! aDescriptor.mxController.is()) - return; - - // Get dispatch object for the command. - aDescriptor.maURL = sfx2::sidebar::Tools::GetURL(sCommandName); - aDescriptor.msCurrentCommand = sCommandName; - aDescriptor.mxDispatch = sfx2::sidebar::Tools::GetDispatch(mxFrame, aDescriptor.maURL); - if ( ! aDescriptor.mxDispatch.is()) - return; - - // Initialize the controller with eg a service factory. - Reference<lang::XInitialization> xInitialization (aDescriptor.mxController, UNO_QUERY); - if (xInitialization.is()) - { - beans::PropertyValue aPropValue; - std::vector<Any> aPropertyVector; - - aPropValue.Name = A2S("Frame"); - aPropValue.Value <<= mxFrame; - aPropertyVector.push_back(makeAny(aPropValue)); - - aPropValue.Name = A2S("ServiceManager"); - aPropValue.Value <<= ::comphelper::getProcessServiceFactory(); - aPropertyVector.push_back(makeAny(aPropValue)); - - aPropValue.Name = A2S("CommandURL"); - aPropValue.Value <<= sCommandName; - aPropertyVector.push_back(makeAny(aPropValue)); - - Sequence<Any> aArgs (comphelper::containerToSequence(aPropertyVector)); - xInitialization->initialize(aArgs); - } - - Reference<util::XUpdatable> xUpdatable (aDescriptor.mxController, UNO_QUERY); - if (xUpdatable.is()) - xUpdatable->update(); - - // Add label. - const OUString sLabel (sfx2::sidebar::CommandInfoProvider::Instance().GetLabelForCommand( - sCommandName, - mxFrame)); - pToolBox->SetQuickHelpText(nItemId, sLabel); - - // Add item to toolbox. - pToolBox->EnableItem(nItemId); - maControllers.insert(::std::make_pair(nItemId, aDescriptor)); - } -} - - - - -ToolBox* InsertPropertyPanel::GetToolBoxForItemId (const sal_uInt16 nItemId) const -{ - switch(nItemId) - { - case TBI_STANDARD_LINE: - case TBI_STANDARD_ARROW: - case TBI_STANDARD_RECTANGLE: - case TBI_STANDARD_ELLIPSE: - case TBI_STANDARD_TEXT: - case TBI_STANDARD_LINES: - case TBI_STANDARD_CONNECTORS: - case TBI_STANDARD_ARROWS: - return mpStandardShapesToolBox.get(); - - case TBI_CUSTOM_BASICS: - case TBI_CUSTOM_SYMBOLS: - case TBI_CUSTOM_ARROWS: - case TBI_CUSTOM_FLOWCHARTS: - case TBI_CUSTOM_CALLOUTS: - case TBI_CUSTOM_STARS: - return mpCustomShapesToolBox.get(); - - default: - return NULL; - } -} - - - - -Reference<frame::XToolbarController> InsertPropertyPanel::GetControllerForItemId (const sal_uInt16 nItemId) const -{ - ControllerContainer::const_iterator iController (maControllers.find(nItemId)); - if (iController != maControllers.end()) - return iController->second.mxController; - else - return NULL; -} - - - - -sal_uInt16 InsertPropertyPanel::GetItemIdForSubToolbarName (const OUString& rsSubToolbarName) const -{ - for (ControllerContainer::const_iterator iController(maControllers.begin()), iEnd(maControllers.end()); - iController!=iEnd; - ++iController) - { - Reference<frame::XSubToolbarController> xSubToolbarController (iController->second.mxController, UNO_QUERY); - if (xSubToolbarController.is()) - if (xSubToolbarController->getSubToolbarName().equals(rsSubToolbarName)) - return iController->first; - } - return 0; -} - - - - -void InsertPropertyPanel::UpdateIcons (void) -{ - const sal_Bool bBigImages (SvtMiscOptions().AreCurrentSymbolsLarge()); - - for (ControllerContainer::iterator iController(maControllers.begin()), iEnd(maControllers.end()); - iController!=iEnd; - ++iController) - { - const ::rtl::OUString sCommandURL (iController->second.msCurrentCommand); - Image aImage (framework::GetImageFromURL(mxFrame, sCommandURL, bBigImages)); - ToolBox* pToolBox = GetToolBoxForItemId(iController->first); - if (pToolBox != NULL) - pToolBox->SetItemImage(iController->first, aImage); - } -} - - - - } } // end of namespace svx::sidebar diff --git a/svx/source/sidebar/insert/InsertPropertyPanel.hxx b/svx/source/sidebar/insert/InsertPropertyPanel.hxx index a84bf1d96972..6f50d9308e0f 100644 --- a/svx/source/sidebar/insert/InsertPropertyPanel.hxx +++ b/svx/source/sidebar/insert/InsertPropertyPanel.hxx @@ -49,41 +49,9 @@ private: ::boost::scoped_ptr<ToolBox> mpStandardShapesToolBox; ::boost::scoped_ptr<Window> mpCustomShapesBackground; ::boost::scoped_ptr<ToolBox> mpCustomShapesToolBox; - class ItemDescriptor - { - public: - cssu::Reference<css::frame::XToolbarController> mxController; - css::util::URL maURL; - rtl::OUString msCurrentCommand; - cssu::Reference<css::frame::XDispatch> mxDispatch; - }; - typedef ::std::map<sal_uInt16, ItemDescriptor> ControllerContainer; - ControllerContainer maControllers; const cssu::Reference<css::frame::XFrame> mxFrame; - /** Add listeners to toolbox and update its size to match its - content. - */ - void SetupToolBox (ToolBox& rToolBox); - cssu::Reference<css::frame::XToolbarController> GetControllerForItemId ( - const sal_uInt16 nItemId) const; - ToolBox* GetToolBoxForItemId (const sal_uInt16 nItemId) const; - sal_uInt16 GetItemIdForSubToolbarName ( - const ::rtl::OUString& rsCOmmandName) const; - - /** Create toolbox controller for one item. - */ - void CreateController ( - const sal_uInt16 nItemId); - void UpdateIcons (void); - - DECL_LINK(DropDownClickHandler, ToolBox*); - DECL_LINK(ClickHandler, ToolBox*); - DECL_LINK(DoubleClickHandler, ToolBox*); - DECL_LINK(SelectHandler, ToolBox*); DECL_LINK(WindowEventListener, VclSimpleEvent*); - DECL_LINK(ActivateToolBox, ToolBox*); - DECL_LINK(DeactivateToolBox, ToolBox*); }; diff --git a/svx/source/sidebar/text/TextPropertyPanel.cxx b/svx/source/sidebar/text/TextPropertyPanel.cxx index 3a671937ff68..53ec527ca6c4 100644 --- a/svx/source/sidebar/text/TextPropertyPanel.cxx +++ b/svx/source/sidebar/text/TextPropertyPanel.cxx @@ -39,7 +39,9 @@ #include <sfx2/viewsh.hxx> #include <sfx2/sidebar/ResourceDefinitions.hrc> #include <sfx2/sidebar/ControlFactory.hxx> +#include <sfx2/sidebar/ControllerFactory.hxx> #include <sfx2/sidebar/Theme.hxx> +#include <sfx2/sidebar/SidebarToolBox.hxx> #include "sfx2/imagemgr.hxx" #include <svtools/ctrltool.hxx> #include <svtools/unitconv.hxx> @@ -86,36 +88,6 @@ namespace } } // end of anonymous namespace -PopupControl* TextPropertyPanel::CreateFontColorPopupControl (PopupContainer* pParent) -{ - const ResId aResId(SVX_RES(STR_AUTOMATICE)); - - return new ColorControl( - pParent, - mpBindings, - SVX_RES(RID_POPUPPANEL_TEXTPAGE_FONT_COLOR), - SVX_RES(VS_FONT_COLOR), - ::boost::bind(GetAutomaticColor), - ::boost::bind(&TextPropertyPanel::SetFontColor, this, _1,_2), - pParent, - &aResId); -} - -PopupControl* TextPropertyPanel::CreateBrushColorPopupControl (PopupContainer* pParent) -{ - const ResId aResId(SVX_RES(STR_AUTOMATICE)); - - return new ColorControl( - pParent, - mpBindings, - SVX_RES(RID_POPUPPANEL_TEXTPAGE_FONT_COLOR), - SVX_RES(VS_FONT_COLOR), - ::boost::bind(GetAutomaticColor), - ::boost::bind(&TextPropertyPanel::SetBrushColor, this, _1,_2), - pParent, - &aResId); -} - long TextPropertyPanel::GetSelFontSize() { long nH = 240; @@ -129,7 +101,8 @@ long TextPropertyPanel::GetSelFontSize() TextPropertyPanel* TextPropertyPanel::Create ( Window* pParent, const cssu::Reference<css::frame::XFrame>& rxFrame, - SfxBindings* pBindings) + SfxBindings* pBindings, + const ::sfx2::sidebar::EnumContext& rContext) { if (pParent == NULL) throw lang::IllegalArgumentException(A2S("no parent Window given to TextPropertyPanel::Create"), NULL, 0); @@ -141,7 +114,8 @@ TextPropertyPanel* TextPropertyPanel::Create ( return new TextPropertyPanel( pParent, rxFrame, - pBindings); + pBindings, + rContext); } @@ -153,7 +127,8 @@ TextPropertyPanel* TextPropertyPanel::Create ( TextPropertyPanel::TextPropertyPanel ( Window* pParent, const cssu::Reference<css::frame::XFrame>& rxFrame, - SfxBindings* pBindings) + SfxBindings* pBindings, + const ::sfx2::sidebar::EnumContext& rContext) : Control(pParent, SVX_RES(RID_SIDEBAR_TEXT_PANEL)), mpFontNameBox (new SvxSBFontNameBox(this, SVX_RES(CB_SBFONT_FONT))), maFontSizeBox (this, SVX_RES(MB_SBFONT_FONTSIZE)), @@ -180,12 +155,15 @@ TextPropertyPanel::TextPropertyPanel ( mpToolBoxFontColorBackground(ControlFactory::CreateToolBoxBackground(this)), mpToolBoxFontColor(ControlFactory::CreateToolBox( mpToolBoxFontColorBackground.get(), - SVX_RES(TB_FONTCOLOR))), + rContext.GetApplication_DI() == sfx2::sidebar::EnumContext::Application_WriterVariants + ? SVX_RES(TB_FONTCOLOR_SW) + : SVX_RES(TB_FONTCOLOR), + rxFrame)), mpToolBoxHighlightBackground(ControlFactory::CreateToolBoxBackground(this)), mpToolBoxHighlight(ControlFactory::CreateToolBox( mpToolBoxHighlightBackground.get(), - SVX_RES(TB_HIGHLIGHT))), - + SVX_RES(TB_HIGHLIGHT), + rxFrame)), mpFontColorUpdater(), mpHighlightUpdater(), @@ -196,12 +174,10 @@ TextPropertyPanel::TextPropertyPanel ( maUnderlineControl (SID_ATTR_CHAR_UNDERLINE, *pBindings, *this, A2S("Underline"), rxFrame), maStrikeControl (SID_ATTR_CHAR_STRIKEOUT, *pBindings, *this, A2S("Strikeout"), rxFrame), maShadowControl (SID_ATTR_CHAR_SHADOWED, *pBindings, *this, A2S("Shadowed"), rxFrame), - maFontColorControl (SID_ATTR_CHAR_COLOR, *pBindings, *this, A2S("Color"), rxFrame), maScriptControlSw (SID_ATTR_CHAR_ESCAPEMENT, *pBindings, *this, A2S("Escapement"), rxFrame), maSuperScriptControl(SID_SET_SUPER_SCRIPT, *pBindings, *this, A2S("SuperScript"), rxFrame), maSubScriptControl (SID_SET_SUB_SCRIPT, *pBindings, *this, A2S("SubScript"), rxFrame), maSpacingControl (SID_ATTR_CHAR_KERNING, *pBindings, *this, A2S("Spacing"), rxFrame), - maHighlightControl (SID_ATTR_BRUSH_CHAR, *pBindings, *this, A2S("CharacterBackgroundPattern"),rxFrame), maSDFontGrow (SID_GROW_FONT_SIZE, *pBindings, *this, A2S("Grow"), rxFrame), maSDFontShrink (SID_SHRINK_FONT_SIZE, *pBindings, *this, A2S("Shrink"), rxFrame), @@ -211,14 +187,12 @@ TextPropertyPanel::TextPropertyPanel ( maCharSpacePopup(this, ::boost::bind(&TextPropertyPanel::CreateCharacterSpacingControl, this, _1)), maUnderlinePopup(this, ::boost::bind(&TextPropertyPanel::CreateUnderlinePopupControl, this, _1)), - maFontColorPopup(this, ::boost::bind(&TextPropertyPanel::CreateFontColorPopupControl, this, _1)), - maBrushColorPopup(this, ::boost::bind(&TextPropertyPanel::CreateBrushColorPopupControl, this, _1)), - mxFrame(rxFrame), maContext(), mpBindings(pBindings) { Initialize(); + FreeResource(); } @@ -358,10 +332,8 @@ void TextPropertyPanel::Initialize (void) SetupToolboxItems(); InitToolBoxIncDec(); InitToolBoxFont(); - InitToolBoxFontColor(); InitToolBoxScript(); InitToolBoxSpacing(); - InitToolBoxHighlight(); #ifdef HAS_IA2 mpFontNameBox->SetAccRelationLabeledBy(&mpFontNameBox); @@ -386,27 +358,13 @@ void TextPropertyPanel::Initialize (void) mbPostureAvailable = true; mbWeightAvailable = true; meUnderline = UNDERLINE_NONE; - meUnderlineColor = COL_AUTO; // - maColor = COL_BLACK; - mbColorAvailable = true; - maBackColor = COL_AUTO; - mbBackColorAvailable = true; + meUnderlineColor = COL_AUTO; meEscape = SVX_ESCAPEMENT_OFF; mbSuper = false; mbSub = false; mbKernAvailable = true; mbKernLBAvailable = true; mlKerning = 0; - mpFontColorUpdater.reset(new ToolboxButtonColorUpdater( - SID_ATTR_CHAR_COLOR, - TBI_FONTCOLOR, - mpToolBoxFontColor.get(), - TBX_UPDATER_MODE_CHAR_COLOR_NEW)); - mpHighlightUpdater.reset(new ToolboxButtonColorUpdater( - SID_ATTR_BRUSH_CHAR, - TBI_HIGHLIGHT, - mpToolBoxHighlight.get(), - TBX_UPDATER_MODE_CHAR_COLOR_NEW)); //set handler mpFontNameBox->SetBindings(mpBindings); @@ -460,17 +418,6 @@ void TextPropertyPanel::InitToolBoxIncDec() -void TextPropertyPanel::InitToolBoxFontColor() -{ - Size aTbxSize( mpToolBoxFontColor->CalcWindowSizePixel() ); - mpToolBoxFontColor->SetOutputSizePixel( aTbxSize ); - mpToolBoxFontColor->SetItemBits( TBI_FONTCOLOR, mpToolBoxFontColor->GetItemBits( TBI_FONTCOLOR ) | TIB_DROPDOWNONLY ); - - Link aLink = LINK(this, TextPropertyPanel, ToolBoxFontColorDropHdl); - mpToolBoxFontColor->SetDropdownClickHdl ( aLink ); - mpToolBoxFontColor->SetSelectHdl ( aLink ); - -} void TextPropertyPanel::InitToolBoxScript() { Size aTbxSize( mpToolBoxScriptSw->CalcWindowSizePixel() ); @@ -495,16 +442,6 @@ void TextPropertyPanel::InitToolBoxSpacing() mpToolBoxSpacing->SetDropdownClickHdl ( aLink ); mpToolBoxSpacing->SetSelectHdl( aLink ); } -void TextPropertyPanel::InitToolBoxHighlight() -{ - Size aTbxSize( mpToolBoxHighlight->CalcWindowSizePixel() ); - mpToolBoxHighlight->SetOutputSizePixel( aTbxSize ); - mpToolBoxHighlight->SetItemBits( TBI_HIGHLIGHT, mpToolBoxHighlight->GetItemBits( TBI_HIGHLIGHT ) | TIB_DROPDOWNONLY ); - - Link aLink = LINK(this, TextPropertyPanel, ToolBoxHighlightDropHdl); - mpToolBoxHighlight->SetDropdownClickHdl ( aLink ); - mpToolBoxHighlight->SetSelectHdl( aLink ); -} @@ -520,7 +457,6 @@ void TextPropertyPanel::SetupToolboxItems (void) maStrikeControl.SetupToolBoxItem(*mpToolBoxFont, TBI_STRIKEOUT); maShadowControl.SetupToolBoxItem(*mpToolBoxFont, TBI_SHADOWED); - maFontColorControl.SetupToolBoxItem(*mpToolBoxFontColor, TBI_FONTCOLOR); //for sw maSuperScriptControl.SetupToolBoxItem(*mpToolBoxScriptSw, TBI_SUPER_SW); maSubScriptControl.SetupToolBoxItem(*mpToolBoxScriptSw, TBI_SUB_SW); @@ -528,7 +464,6 @@ void TextPropertyPanel::SetupToolboxItems (void) maSuperScriptControl.SetupToolBoxItem(*mpToolBoxScript, TBI_SUPER); maSubScriptControl.SetupToolBoxItem(*mpToolBoxScript, TBI_SUB); maSpacingControl.SetupToolBoxItem(*mpToolBoxSpacing, TBI_SPACING); - maHighlightControl.SetupToolBoxItem(*mpToolBoxHighlight, TBI_HIGHLIGHT); } @@ -792,22 +727,6 @@ IMPL_LINK(TextPropertyPanel, ToolBoxUnderlineClickHdl, ToolBox*, pToolBox) -IMPL_LINK(TextPropertyPanel, ToolBoxFontColorDropHdl,ToolBox*, pToolBox) -{ - const sal_uInt16 nId = pToolBox->GetCurItemId(); - if(nId == TBI_FONTCOLOR) - { - pToolBox->SetItemDown( nId, true ); - - maFontColorPopup.Show(*pToolBox); - maFontColorPopup.SetCurrentColor(maColor, mbColorAvailable); - } - return 0; -} - - - - IMPL_LINK(TextPropertyPanel, ToolBoxSwScriptSelectHdl, ToolBox*, pToolBox) { const sal_uInt16 nId = pToolBox->GetCurItemId(); @@ -873,21 +792,6 @@ IMPL_LINK(TextPropertyPanel, ToolBoxScriptSelectHdl, ToolBox*, pToolBox) -IMPL_LINK(TextPropertyPanel, ToolBoxHighlightDropHdl, ToolBox*, pToolBox) -{ - const sal_uInt16 nId = pToolBox->GetCurItemId(); - if(nId == TBI_HIGHLIGHT) - { - pToolBox->SetItemDown( nId, true ); - maBrushColorPopup.Show(*pToolBox); - maBrushColorPopup.SetCurrentColor(maBackColor, mbBackColorAvailable); - - } - return 0; -} - - - IMPL_LINK(TextPropertyPanel, SpacingClickHdl, ToolBox*, pToolBox) { const sal_uInt16 nId = pToolBox->GetCurItemId(); @@ -1081,44 +985,6 @@ void TextPropertyPanel::NotifyItemUpdate ( : STATE_NOCHECK); break; - case SID_ATTR_CHAR_COLOR: - if( eState >= SFX_ITEM_DEFAULT && pState->ISA(SvxColorItem)) - { - const SvxColorItem* pItem = (const SvxColorItem*)pState; - maColor = pItem->GetValue(); - mbColorAvailable = true; - if (mpFontColorUpdater) - mpFontColorUpdater->Update(maColor); - } - else - { - mbColorAvailable = false; - maColor.SetColor(COL_AUTO); - if (mpFontColorUpdater) - mpFontColorUpdater->Update(maColor); - } - mpToolBoxFontColor->EnableItem(TBI_FONTCOLOR, bIsEnabled); - break; - - case SID_ATTR_BRUSH_CHAR: - if( eState >= SFX_ITEM_DEFAULT && pState->ISA(SvxBrushItem)) - { - const SvxBrushItem* pItem = (const SvxBrushItem*)pState; - maBackColor = pItem->GetColor(); - mbBackColorAvailable = true; - if (mpHighlightUpdater) - mpHighlightUpdater->Update(maBackColor); - } - else - { - mbBackColorAvailable = false; - maBackColor.SetColor(COL_AUTO); - if (mpHighlightUpdater) - mpHighlightUpdater->Update(maBackColor); - } - mpToolBoxHighlight->EnableItem(TBI_HIGHLIGHT, bIsEnabled); - break; - case SID_ATTR_CHAR_ESCAPEMENT: { bool bIsItemEnabled (true); @@ -1292,9 +1158,6 @@ void TextPropertyPanel::UpdateItem (const sal_uInt16 nSlotId) case SID_ATTR_CHAR_SHADOWED: maShadowControl.RequestUpdate(); break; - case SID_ATTR_CHAR_COLOR: - maFontColorControl.RequestUpdate(); - break; case SID_ATTR_CHAR_ESCAPEMENT: maScriptControlSw.RequestUpdate(); break; @@ -1307,9 +1170,6 @@ void TextPropertyPanel::UpdateItem (const sal_uInt16 nSlotId) case SID_ATTR_CHAR_KERNING: maSpacingControl.RequestUpdate(); break; - case SID_ATTR_BRUSH_CHAR: - maHighlightControl.RequestUpdate(); - break; case SID_GROW_FONT_SIZE: maSDFontGrow.RequestUpdate(); break; @@ -1323,24 +1183,6 @@ void TextPropertyPanel::UpdateItem (const sal_uInt16 nSlotId) -void TextPropertyPanel::SetFontColor ( - const String& /*rsColorName*/, - const Color aColor) -{ - SvxColorItem aColorItem(aColor, SID_ATTR_CHAR_COLOR); - mpBindings->GetDispatcher()->Execute(SID_ATTR_CHAR_COLOR, SFX_CALLMODE_RECORD, &aColorItem, 0L); - maColor = aColor; -} - -void TextPropertyPanel::SetBrushColor ( - const String& /*rsColorName*/, - const Color aColor) -{ - SvxBrushItem aBrushItem(aColor, SID_ATTR_BRUSH_CHAR); - mpBindings->GetDispatcher()->Execute(SID_ATTR_BRUSH_CHAR, SFX_CALLMODE_RECORD, &aBrushItem, 0L); - maBackColor = aColor; -} - Color& TextPropertyPanel::GetUnderlineColor() { return meUnderlineColor; diff --git a/svx/source/sidebar/text/TextPropertyPanel.hrc b/svx/source/sidebar/text/TextPropertyPanel.hrc index 0244ee5029e7..36fc2503a656 100644 --- a/svx/source/sidebar/text/TextPropertyPanel.hrc +++ b/svx/source/sidebar/text/TextPropertyPanel.hrc @@ -30,11 +30,11 @@ #define TB_FONT 4 #define TB_INCREASE_DECREASE 5 #define TB_FONTCOLOR 6 -#define TB_SCRIPT_SW 7 +#define TB_FONTCOLOR_SW 7 #define TB_HIGHLIGHT 8 #define TB_SPACING 9 #define TB_SCRIPT 10 - +#define TB_SCRIPT_SW 11 #define TBI_FONTCOLOR 50 #define TBI_BOLD 51 diff --git a/svx/source/sidebar/text/TextPropertyPanel.hxx b/svx/source/sidebar/text/TextPropertyPanel.hxx index e2f4dac2124c..a7cc0ddb21ce 100644 --- a/svx/source/sidebar/text/TextPropertyPanel.hxx +++ b/svx/source/sidebar/text/TextPropertyPanel.hxx @@ -22,6 +22,7 @@ #include <sfx2/sidebar/SidebarPanelBase.hxx> #include <sfx2/sidebar/ControllerItem.hxx> #include <sfx2/sidebar/IContextChangeReceiver.hxx> +#include <sfx2/sidebar/EnumContext.hxx> #include <svtools/ctrlbox.hxx> #include <svx/tbxcolorupdate.hxx> @@ -29,6 +30,7 @@ #include <editeng/fhgtitem.hxx> #include <com/sun/star/ui/XSidebar.hpp> +#include <com/sun/star/frame/XToolbarController.hpp> #include <boost/scoped_ptr.hpp> #include "TextCharacterSpacingPopup.hxx" @@ -54,7 +56,8 @@ public: static TextPropertyPanel* Create ( Window* pParent, const cssu::Reference<css::frame::XFrame>& rxFrame, - SfxBindings* pBindings); + SfxBindings* pBindings, + const ::sfx2::sidebar::EnumContext& rContext); virtual void DataChanged (const DataChangedEvent& rEvent); @@ -63,8 +66,6 @@ public: void SetSpacing(long nKern); void EndSpacingPopupMode (void); void EndUnderlinePopupMode (void); - void SetFontColor (const String& rsColorName,const Color aColor); - void SetBrushColor (const String& rsColorName,const Color aColor); void SetUnderline(FontUnderline eUnderline); Color& GetUnderlineColor(); void SetDefaultUnderline(FontUnderline eUnderline); @@ -109,12 +110,10 @@ private: ::sfx2::sidebar::ControllerItem maUnderlineControl; ::sfx2::sidebar::ControllerItem maStrikeControl; ::sfx2::sidebar::ControllerItem maShadowControl; - ::sfx2::sidebar::ControllerItem maFontColorControl; ::sfx2::sidebar::ControllerItem maScriptControlSw; ::sfx2::sidebar::ControllerItem maSuperScriptControl; ::sfx2::sidebar::ControllerItem maSubScriptControl; ::sfx2::sidebar::ControllerItem maSpacingControl; - ::sfx2::sidebar::ControllerItem maHighlightControl; ::sfx2::sidebar::ControllerItem maSDFontGrow; ::sfx2::sidebar::ControllerItem maSDFontShrink; @@ -126,10 +125,6 @@ private: FontStrikeout meStrike; bool mbWeightAvailable; bool mbPostureAvailable; - Color maColor; - bool mbColorAvailable; - Color maBackColor; - bool mbBackColorAvailable; SvxEscapement meEscape; //for sw bool mbSuper; bool mbSub; @@ -143,8 +138,6 @@ private: bool mbFocusOnFontSizeCtrl; TextCharacterSpacingPopup maCharSpacePopup; TextUnderlinePopup maUnderlinePopup; - ColorPopup maFontColorPopup; - ColorPopup maBrushColorPopup; cssu::Reference<css::frame::XFrame> mxFrame; ::sfx2::sidebar::EnumContext maContext; @@ -153,26 +146,21 @@ private: TextPropertyPanel ( Window* pParent, const cssu::Reference<css::frame::XFrame>& rxFrame, - SfxBindings* pBindings); + SfxBindings* pBindings, + const ::sfx2::sidebar::EnumContext& rContext); virtual ~TextPropertyPanel (void); PopupControl* CreateCharacterSpacingControl (PopupContainer* pParent); - PopupControl* CreateFontColorPopupControl (PopupContainer* pParent); - PopupControl* CreateBrushColorPopupControl (PopupContainer* pParent); PopupControl* CreateUnderlinePopupControl (PopupContainer* pParent); DECL_LINK(SpacingClickHdl, ToolBox*); - DECL_LINK(ToolBoxFontColorDropHdl, ToolBox *); //for new color picker - DECL_LINK(ToolBoxHighlightDropHdl, ToolBox *); DECL_LINK(ToolBoxUnderlineClickHdl, ToolBox* ); void Initialize (void); void SetupToolboxItems (void); void InitToolBoxFont(); void InitToolBoxIncDec(); - void InitToolBoxFontColor(); void InitToolBoxScript(); - void InitToolBoxHighlight(); void InitToolBoxSpacing(); DECL_LINK(FontSelHdl, FontNameBox *); diff --git a/svx/source/sidebar/text/TextPropertyPanel.src b/svx/source/sidebar/text/TextPropertyPanel.src index f4038fe65a1c..fcd10dab3e15 100644 --- a/svx/source/sidebar/text/TextPropertyPanel.src +++ b/svx/source/sidebar/text/TextPropertyPanel.src @@ -149,7 +149,6 @@ Control RID_SIDEBAR_TEXT_PANEL Pos = MAP_APPFONT (X3, THIRD_LINE_Y) ; Size = MAP_APPFONT (TOOLBOX_ITEM_DD_WIDTH ,TOOLBOX_ITEM_HEIGHT ) ; TabStop = TRUE ; - Text = "Font Color" ; ItemList = { ToolBoxItem @@ -161,6 +160,24 @@ Control RID_SIDEBAR_TEXT_PANEL }; }; }; + ToolBox TB_FONTCOLOR_SW + { + HelpID = HID_PPROPERTYPANEL_TEXT_TBX_FONT_COLOR; + SVLook = TRUE ; + Pos = MAP_APPFONT (X3, THIRD_LINE_Y) ; + Size = MAP_APPFONT (TOOLBOX_ITEM_DD_WIDTH ,TOOLBOX_ITEM_HEIGHT ) ; + TabStop = TRUE ; + ItemList = + { + ToolBoxItem + { + Identifier = TBI_FONTCOLOR ; + HelpID = HID_PPROPERTYPANEL_TEXT_TBI_FONT_COLOR; + DropDown = TRUE ; + Command = ".uno:FontColor"; + }; + }; + }; ToolBox TB_HIGHLIGHT { @@ -177,7 +194,7 @@ Control RID_SIDEBAR_TEXT_PANEL Identifier = TBI_HIGHLIGHT ; HelpID = HID_PPROPERTYPANEL_TEXT_TBI_HIGHLIGHT_COLOR; DropDown = TRUE ; - Command = ".uno:CharacterBackgroundPattern"; + Command = ".uno:BackColor"; }; }; }; |