| /************************************************************** |
| * |
| * 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_PARA_PROPERTY_PANEL_HXX |
| #define SVX_SIDEBAR_PARA_PROPERTY_PANEL_HXX |
| |
| #include <vcl/ctrl.hxx> |
| #include <sfx2/sidebar/ControllerItem.hxx> |
| #include <sfx2/sidebar/IContextChangeReceiver.hxx> |
| #include <sfx2/sidebar/GridLayouter.hxx> |
| #include <editeng/lspcitem.hxx> |
| #include <svtools/ctrlbox.hxx> |
| #include <svx/tbxcolorupdate.hxx> |
| #include <svx/relfld.hxx> |
| #include <editeng/svxenum.hxx> |
| #include <editeng/fhgtitem.hxx> |
| |
| #include <com/sun/star/frame/XFrame.hpp> |
| #include <com/sun/star/ui/XSidebar.hpp> |
| |
| #include <boost/scoped_ptr.hpp> |
| |
| #include <svx/sidebar/ColorPopup.hxx> |
| #include <vcl/vclenum.hxx> |
| #include <vcl/fixed.hxx> |
| #include <svl/poolitem.hxx> |
| #include <tools/fldunit.hxx> |
| |
| #include "ParaBulletsPopup.hxx" |
| #include "ParaNumberingPopup.hxx" |
| #include "ParaLineSpacingPopup.hxx" |
| |
| class FloatingWindow; |
| class ToolBox; |
| |
| namespace css = ::com::sun::star; |
| namespace cssu = ::com::sun::star::uno; |
| |
| |
| namespace svx { namespace sidebar { |
| |
| class PopupControl; |
| class PopupContainer; |
| |
| class ParaPropertyPanel |
| : public Control, |
| public ::sfx2::sidebar::IContextChangeReceiver, |
| public ::sfx2::sidebar::ControllerItem::ItemUpdateReceiverInterface |
| { |
| public: |
| static ParaPropertyPanel* Create ( |
| Window* pParent, |
| const cssu::Reference<css::frame::XFrame>& rxFrame, |
| SfxBindings* pBindings, |
| const cssu::Reference<css::ui::XSidebar>& rxSidebar); |
| |
| virtual void DataChanged (const DataChangedEvent& rEvent); |
| SfxBindings* GetBindings(); |
| |
| virtual void HandleContextChange ( |
| const ::sfx2::sidebar::EnumContext aContext); |
| |
| virtual void NotifyItemUpdate( |
| const sal_uInt16 nSId, |
| const SfxItemState eState, |
| const SfxPoolItem* pState, |
| const bool bIsEnabled); |
| |
| void ShowMenu (void); |
| sal_uInt16 GetBulletTypeIndex(){ return mnBulletTypeIndex; } |
| sal_uInt16 GetNumTypeIndex(){ return mnNumTypeIndex; } |
| FieldUnit GetCurrentUnit( SfxItemState eState, const SfxPoolItem* pState ); |
| |
| void EndSpacingPopupMode (void); |
| void EndBulletsPopupMode (void); |
| void EndNumberingPopupMode (void); |
| |
| private: |
| /********************************************************** |
| ** |
| ** UI controls |
| ** |
| ***********************************************************/ |
| //Alignment |
| ::boost::scoped_ptr<Window> mpAlignToolBoxBackground; |
| ::boost::scoped_ptr<ToolBox> mpAlignToolBox; |
| ::boost::scoped_ptr<Window> mpTBxVertAlignBackground; |
| ::boost::scoped_ptr<ToolBox> mpTBxVertAlign; |
| //NumBullet&Backcolor |
| ::boost::scoped_ptr<Window> mpTBxNumBulletBackground; |
| ::boost::scoped_ptr<ToolBox> mpTBxNumBullet; |
| ::boost::scoped_ptr<Window> mpTBxBackColorBackground; |
| ::boost::scoped_ptr<ToolBox> mpTBxBackColor; |
| //Paragraph spacing |
| ::boost::scoped_ptr<FixedText> mpFTUL; |
| ::boost::scoped_ptr<Window> mpTbxUL_IncDecBackground; |
| ::boost::scoped_ptr<ToolBox> mpTbxUL_IncDec; |
| ::boost::scoped_ptr<SvxRelativeField> mpTopDist; |
| ::boost::scoped_ptr<SvxRelativeField> mpBottomDist; |
| ::boost::scoped_ptr<Window> mpLineSPTbxBackground; |
| ::boost::scoped_ptr<ToolBox> mpLineSPTbx; |
| ::boost::scoped_ptr<FixedText> mpFTIndent; |
| ::boost::scoped_ptr<Window> mpTbxIndent_IncDecBackground; |
| ::boost::scoped_ptr<ToolBox> mpTbxIndent_IncDec; |
| ::boost::scoped_ptr<Window> mpTbxProDemoteBackground; |
| ::boost::scoped_ptr<ToolBox> mpTbxProDemote; |
| ::boost::scoped_ptr<SvxRelativeField> mpLeftIndent; |
| ::boost::scoped_ptr<SvxRelativeField> mpRightIndent; |
| ::boost::scoped_ptr<SvxRelativeField> mpFLineIndent; |
| |
| ::boost::scoped_ptr< ::svx::ToolboxButtonColorUpdater > mpColorUpdater; |
| |
| /********************************************************** |
| ** |
| ** Resources |
| ** |
| ***********************************************************/ |
| FixedImage maFISpace1; |
| FixedImage maFISpace2; |
| FixedImage maFIndent1; |
| FixedImage maFIndent2; |
| FixedImage maFIndent3; |
| |
| Image maSpace1; |
| Image maSpace2; |
| Image maSpace3; |
| Image maIndent1; |
| Image maIndent2; |
| Image maIndent3; |
| |
| Image maIndHang; |
| |
| ImageList maNumBImageList; |
| ImageList maNumBImageListH; |
| ImageList maNumBImageListRTL; |
| Image maImgBackColorHigh; |
| Image maImgBackColor; |
| |
| /**************************************************************** |
| ** |
| ** Data Member |
| ** |
| *****************************************************************/ |
| long maTxtLeft; |
| //Line spacing |
| SvxLineSpacingItem *mpLnSPItem; |
| SfxItemState meLnSpState; |
| bool mbOutLineLeft; |
| bool mbOutLineRight; |
| long maUpper; |
| long maLower; |
| |
| sal_uInt16 mnBulletTypeIndex; |
| sal_uInt16 mnNumTypeIndex; |
| Color maColor; |
| bool mbColorAvailable; |
| FieldUnit m_eMetricUnit; |
| FieldUnit m_last_eMetricUnit; |
| SfxMapUnit m_eLRSpaceUnit; |
| SfxMapUnit m_eULSpaceUnit; |
| /**************************************************************** |
| ** |
| ** Controll Items |
| ** |
| *****************************************************************/ |
| |
| ::sfx2::sidebar::ControllerItem maLeftAlignControl; |
| ::sfx2::sidebar::ControllerItem maCenterAlignControl; |
| ::sfx2::sidebar::ControllerItem maRightAlignControl; |
| ::sfx2::sidebar::ControllerItem maJustifyAlignControl; |
| ::sfx2::sidebar::ControllerItem maLRSpaceControl; |
| ::sfx2::sidebar::ControllerItem maLNSpaceControl; |
| ::sfx2::sidebar::ControllerItem maULSpaceControl; |
| ::sfx2::sidebar::ControllerItem maOutLineLeftControl; |
| ::sfx2::sidebar::ControllerItem maOutLineRightControl; |
| ::sfx2::sidebar::ControllerItem maDecIndentControl; |
| ::sfx2::sidebar::ControllerItem maIncIndentControl; |
| ::sfx2::sidebar::ControllerItem maVertTop; |
| ::sfx2::sidebar::ControllerItem maVertCenter; |
| ::sfx2::sidebar::ControllerItem maVertBottom; |
| ::sfx2::sidebar::ControllerItem maBulletOnOff; |
| ::sfx2::sidebar::ControllerItem maNumberOnOff; |
| ::sfx2::sidebar::ControllerItem maBackColorControl; |
| ::sfx2::sidebar::ControllerItem m_aMetricCtl; |
| ::sfx2::sidebar::ControllerItem maBulletNumRuleIndex; |
| ::sfx2::sidebar::ControllerItem maNumNumRuleIndex; |
| |
| cssu::Reference<css::frame::XFrame> mxFrame; |
| ::sfx2::sidebar::EnumContext maContext; |
| SfxBindings* mpBindings; |
| ParaLineSpacingPopup maLineSpacePopup; |
| ParaBulletsPopup maBulletsPopup; |
| ParaNumberingPopup maNumberingPopup; |
| ColorPopup maBGColorPopup; |
| cssu::Reference<css::ui::XSidebar> mxSidebar; |
| ::sfx2::sidebar::GridLayouter maLayouter; |
| |
| ParaPropertyPanel ( |
| Window* pParent, |
| const cssu::Reference<css::frame::XFrame>& rxFrame, |
| SfxBindings* pBindings, |
| const cssu::Reference<css::ui::XSidebar>& rxSidebar); |
| virtual ~ParaPropertyPanel (void); |
| |
| void InitImageList(::boost::scoped_ptr<ToolBox>& rTbx, ImageList& rImglst, ImageList& rImgHlst); |
| |
| DECL_LINK(AlignStyleModifyHdl_Impl, ToolBox*); |
| DECL_LINK(VertTbxSelectHandler, ToolBox*); |
| DECL_LINK(NumBTbxSelectHandler, ToolBox*); |
| DECL_LINK(ModifyIndentHdl_Impl, SvxRelativeField*); |
| DECL_LINK(ClickIndent_IncDec_Hdl_Impl, ToolBox*); |
| DECL_LINK(ClickProDemote_Hdl_Impl, ToolBox*); |
| DECL_LINK(ULSpaceHdl_Impl, SvxRelativeField*); |
| DECL_LINK(ClickUL_IncDec_Hdl_Impl, ToolBox*); |
| DECL_LINK(ImplPopupModeEndHdl, FloatingWindow* ); |
| |
| void VertStateChanged(sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState); |
| void ParaBKGStateChanged(sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState); |
| void StateChangedAlignmentImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ); |
| void StateChangedIndentImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ); |
| void StateChangedLnSPImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ); |
| void StateChangedULImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ); |
| void StateChangeOutLineImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ); |
| void StateChangeIncDecImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ); |
| // Add toggle state for numbering and bullet icons |
| void StateChangeBulletNumImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ); |
| //Modified for Numbering&Bullets Dialog UX Enh |
| //Handing the transferred the num rule index data of the current selection |
| void StateChangeBulletNumRuleImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ); |
| |
| void initial(); |
| void ReSize(bool bSize); |
| |
| // Inherited from vcl Window. |
| virtual void Resize (void); |
| |
| PopupControl* CreateLineSpacingControl (PopupContainer* pParent); |
| PopupControl* CreateBulletsPopupControl (PopupContainer* pParent); |
| PopupControl* CreateNumberingPopupControl (PopupContainer* pParent); |
| PopupControl* CreateBGColorPopupControl (PopupContainer* pParent); |
| DECL_LINK(ClickLineSPDropDownHdl_Impl, ToolBox*); |
| DECL_LINK(NumBTbxDDHandler, ToolBox*); |
| DECL_LINK(ToolBoxBackColorDDHandler, ToolBox *); |
| |
| void InitToolBoxAlign(); |
| void InitToolBoxVertAlign(); |
| void InitToolBoxIndent(); |
| void InitToolBoxBGColor(); |
| void InitToolBoxBulletsNumbering(); |
| void InitToolBoxSpacing(); |
| void InitToolBoxLineSpacing(); |
| |
| void SetBGColor (const String& rsColorName, const Color aColor); |
| }; |
| |
| } } // end of namespace ::svx::sidebar |
| |
| #endif |
| |