1b9e67834SAndre Fischer /************************************************************** 2b9e67834SAndre Fischer * 3b9e67834SAndre Fischer * Licensed to the Apache Software Foundation (ASF) under one 4b9e67834SAndre Fischer * or more contributor license agreements. See the NOTICE file 5b9e67834SAndre Fischer * distributed with this work for additional information 6b9e67834SAndre Fischer * regarding copyright ownership. The ASF licenses this file 7b9e67834SAndre Fischer * to you under the Apache License, Version 2.0 (the 8b9e67834SAndre Fischer * "License"); you may not use this file except in compliance 9b9e67834SAndre Fischer * with the License. You may obtain a copy of the License at 10b9e67834SAndre Fischer * 11b9e67834SAndre Fischer * http://www.apache.org/licenses/LICENSE-2.0 12b9e67834SAndre Fischer * 13b9e67834SAndre Fischer * Unless required by applicable law or agreed to in writing, 14b9e67834SAndre Fischer * software distributed under the License is distributed on an 15b9e67834SAndre Fischer * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16b9e67834SAndre Fischer * KIND, either express or implied. See the License for the 17b9e67834SAndre Fischer * specific language governing permissions and limitations 18b9e67834SAndre Fischer * under the License. 19b9e67834SAndre Fischer * 20b9e67834SAndre Fischer *************************************************************/ 21b9e67834SAndre Fischer 22b9e67834SAndre Fischer #ifndef SVX_SIDEBAR_TEXT_PROPERTY_PAGE_HXX 23b9e67834SAndre Fischer #define SVX_SIDEBAR_TEXT_PROPERTY_PAGE_HXX 24b9e67834SAndre Fischer 2595a18594SAndre Fischer #include <vcl/ctrl.hxx> 26b9e67834SAndre Fischer #include <sfx2/sidebar/SidebarPanelBase.hxx> 27b9e67834SAndre Fischer #include <sfx2/sidebar/ControllerItem.hxx> 28f120fe41SAndre Fischer #include <sfx2/sidebar/IContextChangeReceiver.hxx> 29b9e67834SAndre Fischer 30b9e67834SAndre Fischer #include <svtools/ctrlbox.hxx> 31b9e67834SAndre Fischer #include <svx/tbxcolorupdate.hxx> 32b9e67834SAndre Fischer #include <editeng/svxenum.hxx> 33b9e67834SAndre Fischer #include <editeng/fhgtitem.hxx> 34b9e67834SAndre Fischer 3537fee4fdSAndre Fischer #include <com/sun/star/ui/XSidebar.hpp> 36b9e67834SAndre Fischer 37b9e67834SAndre Fischer #include <boost/scoped_ptr.hpp> 38d4aefcaeSZheng Fan #include "TextCharacterSpacingPopup.hxx" 39d4aefcaeSZheng Fan #include "TextUnderlinePopup.hxx" 40facb16e7SArmin Le Grand #include <svx/sidebar/ColorPopup.hxx> 41d4aefcaeSZheng Fan #include <vcl/vclenum.hxx> 42b9e67834SAndre Fischer 4395a18594SAndre Fischer class FloatingWindow; 4495a18594SAndre Fischer class ToolBox; 4595a18594SAndre Fischer 46b9e67834SAndre Fischer namespace svx { namespace sidebar { 47b9e67834SAndre Fischer 48b9e67834SAndre Fischer class SvxSBFontNameBox; 49d4aefcaeSZheng Fan class PopupControl; 50d4aefcaeSZheng Fan class PopupContainer; 51b9e67834SAndre Fischer 52b9e67834SAndre Fischer class TextPropertyPanel 5395a18594SAndre Fischer : public Control, 5465be1ea2SAndre Fischer public ::sfx2::sidebar::IContextChangeReceiver, 55b9e67834SAndre Fischer public ::sfx2::sidebar::ControllerItem::ItemUpdateReceiverInterface 56b9e67834SAndre Fischer { 57b9e67834SAndre Fischer public: 5895a18594SAndre Fischer static TextPropertyPanel* Create ( 59b9e67834SAndre Fischer Window* pParent, 60b9e67834SAndre Fischer const cssu::Reference<css::frame::XFrame>& rxFrame, 61f79579d2SAndre Fischer SfxBindings* pBindings); 62b9e67834SAndre Fischer 63b9e67834SAndre Fischer virtual void DataChanged (const DataChangedEvent& rEvent); 64*bc7f1831SAndre Fischer virtual void Resize (void); 65*bc7f1831SAndre Fischer 66d4aefcaeSZheng Fan ::sfx2::sidebar::ControllerItem& GetSpaceController(); 67d4aefcaeSZheng Fan long GetSelFontSize(); 68d4aefcaeSZheng Fan void SetSpacing(long nKern); 69d4aefcaeSZheng Fan void EndSpacingPopupMode (void); 70d4aefcaeSZheng Fan void EndUnderlinePopupMode (void); 718ce66e53SOliver-Rainer Wittmann void SetFontColor (const String& rsColorName,const Color aColor); 728ce66e53SOliver-Rainer Wittmann void SetBrushColor (const String& rsColorName,const Color aColor); 738ce66e53SOliver-Rainer Wittmann void SetUnderline(FontUnderline eUnderline); 748ce66e53SOliver-Rainer Wittmann Color& GetUnderlineColor(); 758ce66e53SOliver-Rainer Wittmann void SetDefaultUnderline(FontUnderline eUnderline); 76da72173fSAndre Fischer 77b9e67834SAndre Fischer 78b9e67834SAndre Fischer virtual void HandleContextChange ( 79b9e67834SAndre Fischer const ::sfx2::sidebar::EnumContext aContext); 80b9e67834SAndre Fischer 8145da7d5eSAndre Fischer 82b9e67834SAndre Fischer virtual void NotifyItemUpdate( 83b9e67834SAndre Fischer const sal_uInt16 nSId, 84b9e67834SAndre Fischer const SfxItemState eState, 8545da7d5eSAndre Fischer const SfxPoolItem* pState, 8645da7d5eSAndre Fischer const bool bIsEnabled); 87b9e67834SAndre Fischer 88b9e67834SAndre Fischer private: 898ce66e53SOliver-Rainer Wittmann //ui controls 90b9e67834SAndre Fischer ::boost::scoped_ptr<SvxSBFontNameBox> mpFontNameBox; 918ce66e53SOliver-Rainer Wittmann FontSizeBox maFontSizeBox; 928ce66e53SOliver-Rainer Wittmann ::boost::scoped_ptr<Window> mpToolBoxFontBackground; 938ce66e53SOliver-Rainer Wittmann ::boost::scoped_ptr<ToolBox> mpToolBoxFont; 9452d13b84SAndre Fischer ::boost::scoped_ptr<Window> mpToolBoxIncDecBackground; 9552d13b84SAndre Fischer ::boost::scoped_ptr<ToolBox> mpToolBoxIncDec; 968ce66e53SOliver-Rainer Wittmann ::boost::scoped_ptr<Window> mpToolBoxScriptBackground; 978ce66e53SOliver-Rainer Wittmann ::boost::scoped_ptr<ToolBox> mpToolBoxScript; 988ce66e53SOliver-Rainer Wittmann ::boost::scoped_ptr<Window> mpToolBoxScriptSwBackground; 998ce66e53SOliver-Rainer Wittmann ::boost::scoped_ptr<ToolBox> mpToolBoxScriptSw; 1008ce66e53SOliver-Rainer Wittmann ::boost::scoped_ptr<Window> mpToolBoxSpacingBackground; 1018ce66e53SOliver-Rainer Wittmann ::boost::scoped_ptr<ToolBox> mpToolBoxSpacing; 10252d13b84SAndre Fischer ::boost::scoped_ptr<Window> mpToolBoxFontColorBackground; 10352d13b84SAndre Fischer ::boost::scoped_ptr<ToolBox> mpToolBoxFontColor; 1048ce66e53SOliver-Rainer Wittmann ::boost::scoped_ptr<Window> mpToolBoxHighlightBackground; 1058ce66e53SOliver-Rainer Wittmann ::boost::scoped_ptr<ToolBox> mpToolBoxHighlight; 1068ce66e53SOliver-Rainer Wittmann ::boost::scoped_ptr<ToolboxButtonColorUpdater> mpFontColorUpdater; 107b9e67834SAndre Fischer ::boost::scoped_ptr<ToolboxButtonColorUpdater> mpHighlightUpdater; 108b9e67834SAndre Fischer 1098ce66e53SOliver-Rainer Wittmann //control items 1108ce66e53SOliver-Rainer Wittmann ::sfx2::sidebar::ControllerItem maFontNameControl; 1118ce66e53SOliver-Rainer Wittmann ::sfx2::sidebar::ControllerItem maFontSizeControl; 1128ce66e53SOliver-Rainer Wittmann ::sfx2::sidebar::ControllerItem maWeightControl; 1138ce66e53SOliver-Rainer Wittmann ::sfx2::sidebar::ControllerItem maItalicControl; 1148ce66e53SOliver-Rainer Wittmann ::sfx2::sidebar::ControllerItem maUnderlineControl; 1158ce66e53SOliver-Rainer Wittmann ::sfx2::sidebar::ControllerItem maStrikeControl; 1168ce66e53SOliver-Rainer Wittmann ::sfx2::sidebar::ControllerItem maShadowControl; 1178ce66e53SOliver-Rainer Wittmann ::sfx2::sidebar::ControllerItem maFontColorControl; 1188ce66e53SOliver-Rainer Wittmann ::sfx2::sidebar::ControllerItem maScriptControlSw; 1198ce66e53SOliver-Rainer Wittmann ::sfx2::sidebar::ControllerItem maSuperScriptControl; 1208ce66e53SOliver-Rainer Wittmann ::sfx2::sidebar::ControllerItem maSubScriptControl; 1218ce66e53SOliver-Rainer Wittmann ::sfx2::sidebar::ControllerItem maSpacingControl; 1228ce66e53SOliver-Rainer Wittmann ::sfx2::sidebar::ControllerItem maHighlightControl; 1238ce66e53SOliver-Rainer Wittmann ::sfx2::sidebar::ControllerItem maSDFontGrow; 1248ce66e53SOliver-Rainer Wittmann ::sfx2::sidebar::ControllerItem maSDFontShrink; 1258ce66e53SOliver-Rainer Wittmann 1268ce66e53SOliver-Rainer Wittmann FontWeight meWeight; 1278ce66e53SOliver-Rainer Wittmann FontItalic meItalic; 1288ce66e53SOliver-Rainer Wittmann FontUnderline meUnderline; 1298ce66e53SOliver-Rainer Wittmann Color meUnderlineColor; 1308ce66e53SOliver-Rainer Wittmann bool mbShadow; 1318ce66e53SOliver-Rainer Wittmann FontStrikeout meStrike; 1328ce66e53SOliver-Rainer Wittmann bool mbWeightAvailable; 1338ce66e53SOliver-Rainer Wittmann bool mbPostureAvailable; 1348ce66e53SOliver-Rainer Wittmann Color maColor; 1358ce66e53SOliver-Rainer Wittmann bool mbColorAvailable; 1368ce66e53SOliver-Rainer Wittmann Color maBackColor; 1378ce66e53SOliver-Rainer Wittmann bool mbBackColorAvailable; 1388ce66e53SOliver-Rainer Wittmann SvxEscapement meEscape; //for sw 1398ce66e53SOliver-Rainer Wittmann bool mbSuper; 1408ce66e53SOliver-Rainer Wittmann bool mbSub; 1418ce66e53SOliver-Rainer Wittmann bool mbKernAvailable; 1428ce66e53SOliver-Rainer Wittmann bool mbKernLBAvailable; 1438ce66e53SOliver-Rainer Wittmann long mlKerning; 1448ce66e53SOliver-Rainer Wittmann SvxFontHeightItem* mpHeightItem; 1458ce66e53SOliver-Rainer Wittmann 1468ce66e53SOliver-Rainer Wittmann const FontList* mpFontList; 1478ce66e53SOliver-Rainer Wittmann bool mbMustDelete; 1488ce66e53SOliver-Rainer Wittmann bool mbFocusOnFontSizeCtrl; 1498ce66e53SOliver-Rainer Wittmann TextCharacterSpacingPopup maCharSpacePopup; 1508ce66e53SOliver-Rainer Wittmann TextUnderlinePopup maUnderlinePopup; 1518ce66e53SOliver-Rainer Wittmann ColorPopup maFontColorPopup; 1528ce66e53SOliver-Rainer Wittmann ColorPopup maBrushColorPopup; 153b9e67834SAndre Fischer 15495a18594SAndre Fischer cssu::Reference<css::frame::XFrame> mxFrame; 155b9e67834SAndre Fischer ::sfx2::sidebar::EnumContext maContext; 156b9e67834SAndre Fischer SfxBindings* mpBindings; 15737fee4fdSAndre Fischer 158b9e67834SAndre Fischer TextPropertyPanel ( 159b9e67834SAndre Fischer Window* pParent, 160b9e67834SAndre Fischer const cssu::Reference<css::frame::XFrame>& rxFrame, 161f79579d2SAndre Fischer SfxBindings* pBindings); 1628ce66e53SOliver-Rainer Wittmann virtual ~TextPropertyPanel (void); 1638ce66e53SOliver-Rainer Wittmann 1648ce66e53SOliver-Rainer Wittmann 1658ce66e53SOliver-Rainer Wittmann PopupControl* CreateCharacterSpacingControl (PopupContainer* pParent); 1668ce66e53SOliver-Rainer Wittmann PopupControl* CreateFontColorPopupControl (PopupContainer* pParent); 1678ce66e53SOliver-Rainer Wittmann PopupControl* CreateBrushColorPopupControl (PopupContainer* pParent); 1688ce66e53SOliver-Rainer Wittmann PopupControl* CreateUnderlinePopupControl (PopupContainer* pParent); 1698ce66e53SOliver-Rainer Wittmann DECL_LINK(SpacingClickHdl, ToolBox*); 1708ce66e53SOliver-Rainer Wittmann DECL_LINK(ToolBoxFontColorDropHdl, ToolBox *); //for new color picker 1718ce66e53SOliver-Rainer Wittmann DECL_LINK(ToolBoxHighlightDropHdl, ToolBox *); 1728ce66e53SOliver-Rainer Wittmann DECL_LINK(ToolBoxUnderlineClickHdl, ToolBox* ); 1738ce66e53SOliver-Rainer Wittmann 1748ce66e53SOliver-Rainer Wittmann void Initialize (void); 17545da7d5eSAndre Fischer void SetupToolboxItems (void); 1768ce66e53SOliver-Rainer Wittmann void InitToolBoxFont(); 1778ce66e53SOliver-Rainer Wittmann void InitToolBoxIncDec(); 1788ce66e53SOliver-Rainer Wittmann void InitToolBoxFontColor(); 1798ce66e53SOliver-Rainer Wittmann void InitToolBoxScript(); 1808ce66e53SOliver-Rainer Wittmann void InitToolBoxHighlight(); 1818ce66e53SOliver-Rainer Wittmann void InitToolBoxSpacing(); 1828ce66e53SOliver-Rainer Wittmann 1838ce66e53SOliver-Rainer Wittmann DECL_LINK(FontSelHdl, FontNameBox *); 1848ce66e53SOliver-Rainer Wittmann DECL_LINK(FontSizeModifyHdl, FontSizeBox *); 1858ce66e53SOliver-Rainer Wittmann DECL_LINK(FontSizeSelHdl, FontSizeBox *); 1868ce66e53SOliver-Rainer Wittmann DECL_LINK(FontSizeLoseFocus, FontSizeBox *); 1878ce66e53SOliver-Rainer Wittmann DECL_LINK(ToolboxFontSelectHandler, ToolBox *); 1888ce66e53SOliver-Rainer Wittmann DECL_LINK(ToolboxIncDecSelectHdl, ToolBox *); 1898ce66e53SOliver-Rainer Wittmann DECL_LINK(ToolBoxSwScriptSelectHdl, ToolBox *); 1908ce66e53SOliver-Rainer Wittmann DECL_LINK(ToolBoxScriptSelectHdl, ToolBox *); 19195a18594SAndre Fischer 19245da7d5eSAndre Fischer void UpdateItem (const sal_uInt16 nSlotId); 193b9e67834SAndre Fischer }; 194b9e67834SAndre Fischer 195b9e67834SAndre Fischer } } // end of namespace ::svx::sidebar 196b9e67834SAndre Fischer 197b9e67834SAndre Fischer #endif 198