/************************************************************** * * 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 SVX_SIDEBAR_TEXT_PROPERTY_PAGE_HXX #define SVX_SIDEBAR_TEXT_PROPERTY_PAGE_HXX #include #include #include #include #include #include #include #include #include #include #include "TextCharacterSpacingPopup.hxx" #include "TextUnderlinePopup.hxx" #include #include class FloatingWindow; class ToolBox; namespace svx { namespace sidebar { class SvxSBFontNameBox; class PopupControl; class PopupContainer; class TextPropertyPanel : public Control, public ::sfx2::sidebar::IContextChangeReceiver, public ::sfx2::sidebar::ControllerItem::ItemUpdateReceiverInterface { public: static TextPropertyPanel* Create ( Window* pParent, const cssu::Reference& rxFrame, SfxBindings* pBindings); virtual void DataChanged (const DataChangedEvent& rEvent); SfxBindings* GetBindings(); ::sfx2::sidebar::ControllerItem& GetSpaceController(); long GetSelFontSize(); void SetSpacing(long nKern); void EndSpacingPopupMode (void); void EndUnderlinePopupMode (void); Color GetFontColor (void) const; void SetFontColor (const String& rsColorName,const Color aColor); Color GetBrushColor (void) const; void SetBrushColor (const String& rsColorName,const Color aColor); void SetUnderline(FontUnderline eUnderline); Color& GetUnderlineColor(); void SetDefaultUnderline(FontUnderline eUnderline); enum ColorType { FONT_COLOR = 1, BACK_COLOR = 2 }; virtual void HandleContextChange ( const ::sfx2::sidebar::EnumContext aContext); virtual void NotifyItemUpdate( const sal_uInt16 nSId, const SfxItemState eState, const SfxPoolItem* pState); private: //ui controls ::boost::scoped_ptr mpFontNameBox; FontSizeBox maFontSizeBox; ::boost::scoped_ptr mpToolBoxIncDecBackground; ::boost::scoped_ptr mpToolBoxIncDec; ::boost::scoped_ptr mpToolBoxFontBackground; ::boost::scoped_ptr mpToolBoxFont; ::boost::scoped_ptr mpToolBoxFontColorBackground; ::boost::scoped_ptr mpToolBoxFontColor; ::boost::scoped_ptr mpToolBoxScriptBackground; ::boost::scoped_ptr mpToolBoxScript; ::boost::scoped_ptr mpToolBoxScriptSwBackground; ::boost::scoped_ptr mpToolBoxScriptSw; ::boost::scoped_ptr mpToolBoxSpacingBackground; ::boost::scoped_ptr mpToolBoxSpacing; ::boost::scoped_ptr mpToolBoxHighlightBackground; ::boost::scoped_ptr mpToolBoxHighlight; ::boost::scoped_ptr mpFontColorUpdater; ::boost::scoped_ptr mpHighlightUpdater; //control items ::sfx2::sidebar::ControllerItem maFontNameControl; ::sfx2::sidebar::ControllerItem maFontSizeControl; ::sfx2::sidebar::ControllerItem maWeightControl; ::sfx2::sidebar::ControllerItem maItalicControl; ::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; //Images Image maImgIncrease; Image maImgDecrease; Image maImgBold; Image maImgItalic; Image maImgUnderline; Image maImgStrike; Image maImgShadow; Image maImgFontColor; Image maImgSupScript; Image maImgSubScript; Image maImgHighlight; Image maImgNormalIcon; Image maImgIncreaseHigh; Image maImgDecreaseHigh; Image maImgBoldHigh; Image maImgItalicHigh; Image maImgUnderlineHigh; Image maImgStrikeHigh; Image maImgShadowHigh; Image maImgFontColorHigh; Image maImgSupScriptHigh; Image maImgSubScriptHigh; // Image maImgSpacingHigh; // Image maImgHighlightHigh; FontWeight meWeight; FontItalic meItalic; FontUnderline meUnderline; Color meUnderlineColor; // bool mbShadow; FontStrikeout meStrike; bool mbWeightAvailable; bool mbPostureAvailable; Color maColor; bool mbColorAvailable; Color maBackColor; bool mbBackColorAvailable; ColorType meColorType; SvxEscapement meEscape; //for sw bool mbSuper; bool mbSub; bool mbKernAvailable; bool mbKernLBAvailable; long mlKerning; SvxFontHeightItem* mpHeightItem; const FontList* mpFontList; bool mbMustDelete; bool mbFocusOnFontSizeCtrl; TextCharacterSpacingPopup maCharSpacePopup; TextUnderlinePopup maUnderlinePopup; ColorPopup maFontColorPopup; ColorPopup maBrushColorPopup; cssu::Reference mxFrame; ::sfx2::sidebar::EnumContext maContext; SfxBindings* mpBindings; TextPropertyPanel ( Window* pParent, const cssu::Reference& rxFrame, SfxBindings* pBindings); 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 SetupIcons (void); void InitToolBoxFont(); void InitToolBoxIncDec(); void InitToolBoxFontColor(); void InitToolBoxScript(); void InitToolBoxHighlight(); void InitToolBoxSpacing(); void UpdateFontBold(); void UpdateFontItalic(); void UpdateFontUnderline(); void UpdateFontStrikeOut(); void UpdateFontShadowed(); void UpdateFontScript(); DECL_LINK(FontSelHdl, FontNameBox *); DECL_LINK(FontSizeModifyHdl, FontSizeBox *); DECL_LINK(FontSizeSelHdl, FontSizeBox *); DECL_LINK(FontSizeLoseFocus, FontSizeBox *); DECL_LINK(ToolboxFontSelectHandler, ToolBox *); DECL_LINK(ToolboxIncDecSelectHdl, ToolBox *); DECL_LINK(ImplPopupModeEndHdl, FloatingWindow* ); DECL_LINK(ToolBoxSwScriptSelectHdl, ToolBox *); DECL_LINK(ToolBoxScriptSelectHdl, ToolBox *); void TextStyleChanged(); Image GetIcon (const ::rtl::OUString& rsURL); }; } } // end of namespace ::svx::sidebar #endif