summaryrefslogtreecommitdiff
path: root/svx/source/sidebar/paragraph/ParaPropertyPanel.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/sidebar/paragraph/ParaPropertyPanel.hxx')
-rwxr-xr-xsvx/source/sidebar/paragraph/ParaPropertyPanel.hxx290
1 files changed, 290 insertions, 0 deletions
diff --git a/svx/source/sidebar/paragraph/ParaPropertyPanel.hxx b/svx/source/sidebar/paragraph/ParaPropertyPanel.hxx
new file mode 100755
index 000000000000..f8f28b2d4076
--- /dev/null
+++ b/svx/source/sidebar/paragraph/ParaPropertyPanel.hxx
@@ -0,0 +1,290 @@
+/**************************************************************
+ *
+ * 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 <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);
+
+ void ShowMenu (void);
+ sal_uInt16 GetBulletTypeIndex(){ return mnBulletTypeIndex; }
+ void SetBulletTypeIndex(sal_uInt16 nInd){ mnBulletTypeIndex = nInd; }
+ sal_uInt16 GetNumTypeIndex(){ return mnNumTypeIndex; }
+ void SetNumTypeIndex(sal_uInt16 nInd){ mnNumTypeIndex = nInd; }
+ FieldUnit GetCurrentUnit( SfxItemState eState, const SfxPoolItem* pState );
+
+ void EndSpacingPopupMode (void);
+ void EndBulletsPopupMode (void);
+ void EndNumberingPopupMode (void);
+
+private:
+ /**********************************************************
+ **
+ ** UI controls
+ **
+ ***********************************************************/
+ //Alignment
+ ::boost::scoped_ptr<Window> maAlignToolBoxBackground;
+ ::boost::scoped_ptr<ToolBox> maAlignToolBox;
+ ::boost::scoped_ptr<Window> maTBxVertAlignBackground;
+ ::boost::scoped_ptr<ToolBox> maTBxVertAlign;
+ //NumBullet&Backcolor
+ ::boost::scoped_ptr<Window> maTBxNumBulletBackground;
+ ::boost::scoped_ptr<ToolBox> maTBxNumBullet;
+ ::boost::scoped_ptr<Window> maTBxBackColorBackground;
+ ::boost::scoped_ptr<ToolBox> maTBxBackColor;
+ //Paragraph spacing
+ ::boost::scoped_ptr<FixedText> maFTUL;
+ ::boost::scoped_ptr<Window> maTbxUL_IncDecBackground;
+ ::boost::scoped_ptr<ToolBox> maTbxUL_IncDec;
+ ::boost::scoped_ptr<SvxRelativeField> maTopDist;
+ ::boost::scoped_ptr<SvxRelativeField> maBottomDist;
+ //Line spacing
+ ::boost::scoped_ptr<Window> maLineSPTbxBackground;
+ ::boost::scoped_ptr<ToolBox> maLineSPTbx;
+ //Indent
+ ::boost::scoped_ptr<FixedText> maFTIndent;
+ ::boost::scoped_ptr<Window> maTbxIndent_IncDecBackground;
+ ::boost::scoped_ptr<ToolBox> maTbxIndent_IncDec;
+ ::boost::scoped_ptr<Window> maTbxProDemoteBackground;
+ ::boost::scoped_ptr<ToolBox> maTbxProDemote;
+ ::boost::scoped_ptr<SvxRelativeField> maLeftIndent;
+ ::boost::scoped_ptr<SvxRelativeField> maRightIndent;
+ ::boost::scoped_ptr<SvxRelativeField> maFLineIndent;
+ ::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 maLeftPara;
+ Image maCentPara;
+ Image maRightPara;
+ Image maJusPara;
+
+ Image maIndInc;
+ Image maIndDec;
+ Image maIndInc_BD;
+ Image maIndDec_BD;
+ Image maIndHang;
+ Image maParInc;
+ Image maParDec;
+
+ ImageList maVertImageList;
+ ImageList maVertImageListH;
+ 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;
+
+ ::sfx2::sidebar::EnumContext maContext;
+ SfxBindings* mpBindings;
+ ParaLineSpacingPopup maLineSpacePopup;
+ ParaBulletsPopup maBulletsPopup;
+ ParaNumberingPopup maNumberingPopup;
+ ColorPopup maBGColorPopup;
+ cssu::Reference<css::ui::XSidebar> mxSidebar;
+
+
+ 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);
+
+
+ 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 SetupIcons (void);
+ void InitToolBoxAlign();
+ void InitToolBoxVertAlign();
+ void InitToolBoxIndent();
+ void InitToolBoxBGColor();
+ void InitToolBoxBulletsNumbering();
+ void InitToolBoxSpacing();
+ void InitToolBoxLineSpacing();
+
+ Color GetBGColor (void) const;
+ void SetBGColor (const String& rsColorName, const Color aColor);
+};
+
+} } // end of namespace ::svx::sidebar
+
+#endif
+