diff options
Diffstat (limited to 'svx/inc/svx')
46 files changed, 1792 insertions, 398 deletions
diff --git a/svx/inc/svx/AffineMatrixItem.hxx b/svx/inc/svx/AffineMatrixItem.hxx new file mode 100755 index 000000000000..0ad7623ab9d7 --- /dev/null +++ b/svx/inc/svx/AffineMatrixItem.hxx @@ -0,0 +1,58 @@ +/************************************************************** + * + * 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_AFFINEMATRIXITEM_HXX +#define _SVX_AFFINEMATRIXITEM_HXX + +#include <svx/svxdllapi.h> +#include <svl/poolitem.hxx> +#include <com/sun/star/geometry/AffineMatrix2D.hpp> + +//--------------------- +// class AffineMatrixItem +//--------------------- + +class SVX_DLLPUBLIC AffineMatrixItem : public SfxPoolItem +{ +private: + com::sun::star::geometry::AffineMatrix2D maMatrix; + +public: + TYPEINFO(); + AffineMatrixItem(const com::sun::star::geometry::AffineMatrix2D* pMatrix = 0); + AffineMatrixItem(SvStream& rIn); + AffineMatrixItem(const AffineMatrixItem&); + virtual ~AffineMatrixItem(); + + virtual int operator==(const SfxPoolItem&) const; + virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const; + virtual SfxPoolItem* Create( SvStream& rIn, sal_uInt16 nVer ) const; + virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion ) const; + + virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const; + virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ); + + const com::sun::star::geometry::AffineMatrix2D& GetAffineMatrix2D() const; +}; + +#endif // _SVX_AFFINEMATRIXITEM_HXX + +// eof diff --git a/svx/inc/svx/XPropertyEntry.hxx b/svx/inc/svx/XPropertyEntry.hxx new file mode 100755 index 000000000000..c91183b42668 --- /dev/null +++ b/svx/inc/svx/XPropertyEntry.hxx @@ -0,0 +1,51 @@ +/************************************************************** + * + * 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 _XPROPERTYENTRY_HXX +#define _XPROPERTYENTRY_HXX + +#include <svx/svxdllapi.h> +#include <tools/string.hxx> +#include <vcl/bitmap.hxx> + +// --------------------- +// class XPropertyEntry + +class SVX_DLLPUBLIC XPropertyEntry +{ +private: + String maName; + Bitmap maUiBitmap; + +protected: + XPropertyEntry(const String& rName); + XPropertyEntry(const XPropertyEntry& rOther); + +public: + virtual ~XPropertyEntry(); + + void SetName(const String& rName) { maName = rName; } + const String& GetName() const { return maName; } + void SetUiBitmap(const Bitmap& rUiBitmap) { maUiBitmap = rUiBitmap; } + const Bitmap& GetUiBitmap() const { return maUiBitmap; } +}; + +#endif // _XPROPERTYENTRY_HXX diff --git a/svx/inc/svx/XPropertyTable.hxx b/svx/inc/svx/XPropertyTable.hxx index efe01418bdaf..73253e324b72 100644 --- a/svx/inc/svx/XPropertyTable.hxx +++ b/svx/inc/svx/XPropertyTable.hxx @@ -28,7 +28,7 @@ #include "svx/svxdllapi.h" #include <svx/xtable.hxx> -SVX_DLLPUBLIC ::com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SAL_CALL SvxUnoXColorTable_createInstance( XPropertyTable* pTable ) throw(); +SVX_DLLPUBLIC ::com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SAL_CALL SvxUnoXColorTable_createInstance( XPropertyList* pTable ) throw(); SVX_DLLPUBLIC ::com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SAL_CALL SvxUnoXLineEndTable_createInstance( XPropertyList* pList ) throw(); SVX_DLLPUBLIC ::com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SAL_CALL SvxUnoXDashTable_createInstance( XPropertyList* pList ) throw(); SVX_DLLPUBLIC ::com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SAL_CALL SvxUnoXHatchTable_createInstance( XPropertyList* pList ) throw(); diff --git a/svx/inc/svx/bmpmask.hxx b/svx/inc/svx/bmpmask.hxx index 3604f23a9085..c3e110a49314 100644 --- a/svx/inc/svx/bmpmask.hxx +++ b/svx/inc/svx/bmpmask.hxx @@ -119,7 +119,7 @@ class SVX_DLLPUBLIC SvxBmpMask : public SfxDockingWindow CheckBox aCbxTrans; ColorLB aLbColorTrans; - const XColorTable* pColTab; + const XColorList* pColTab; Color aPipetteColor; SvxBmpMaskSelectItem aSelItem; @@ -161,7 +161,7 @@ public: void PipetteClicked(); sal_Bool NeedsColorTable() const; - void SetColorTable( const XColorTable* pColorTable ); + void SetColorTable( const XColorList* pColorTable ); void SetExecState( sal_Bool bEnable ); diff --git a/svx/inc/svx/colrctrl.hxx b/svx/inc/svx/colrctrl.hxx index d9ab7ff5b1fc..3519d1060da4 100644 --- a/svx/inc/svx/colrctrl.hxx +++ b/svx/inc/svx/colrctrl.hxx @@ -30,7 +30,7 @@ #include <svl/lstner.hxx> #include "svx/svxdllapi.h" -class XColorTable; +class XColorList; class SvData; /************************************************************************* @@ -95,7 +95,7 @@ class SvxColorDockingWindow : public SfxDockingWindow, public SfxListener friend class SvxColorChildWindow; private: - XColorTable* pColorTable; + XColorList* pColorTable; SvxColorValueSet aColorSet; sal_uInt16 nLeftSlot; sal_uInt16 nRightSlot; diff --git a/svx/inc/svx/dialcontrol.hxx b/svx/inc/svx/dialcontrol.hxx index 8234abe797af..2e80ad289666 100644 --- a/svx/inc/svx/dialcontrol.hxx +++ b/svx/inc/svx/dialcontrol.hxx @@ -29,13 +29,42 @@ #include <sfx2/itemconnect.hxx> #include "svx/svxdllapi.h" +#include <boost/scoped_ptr.hpp> + class NumericField; namespace svx { // ============================================================================ -struct DialControl_Impl; +class DialControlBmp : public VirtualDevice +{ +public: + explicit DialControlBmp( Window& rParent ); + + void InitBitmap( const Size& rSize, const Font& rFont ); + void CopyBackground( const DialControlBmp& rSrc ); + void DrawBackground( const Size& rSize, bool bEnabled ); + virtual void DrawBackground(); + virtual void DrawElements( const String& rText, sal_Int32 nAngle ); + +protected: + Rectangle maRect; + bool mbEnabled; + +private: + const Color& GetBackgroundColor() const; + const Color& GetTextColor() const; + const Color& GetScaleLineColor() const; + const Color& GetButtonLineColor() const; + const Color& GetButtonFillColor( bool bMain ) const; + + void Init( const Size& rSize ); + + Window& mrParent; + long mnCenterX; + long mnCenterY; +}; /** This control allows to input a rotation angle, visualized by a dial. @@ -90,20 +119,42 @@ public: /** Returns the current modify handler. */ const Link& GetModifyHdl() const; -private: +protected: + struct DialControl_Impl + { + ::boost::scoped_ptr<DialControlBmp> mpBmpEnabled; + ::boost::scoped_ptr<DialControlBmp> mpBmpDisabled; + ::boost::scoped_ptr<DialControlBmp> mpBmpBuffered; + Link maModifyHdl; + NumericField* mpLinkField; + Size maWinSize; + Font maWinFont; + sal_Int32 mnAngle; + sal_Int32 mnOldAngle; + long mnCenterX; + long mnCenterY; + bool mbNoRot; + + explicit DialControl_Impl( Window& rParent ); + void Init( const Size& rWinSize, const Font& rWinFont ); + }; + std::auto_ptr< DialControl_Impl > mpImpl; + + virtual void HandleMouseEvent( const Point& rPos, bool bInitial ); + virtual void HandleEscapeEvent(); + + void SetRotation( sal_Int32 nAngle, bool bBroadcast ); + void Init( const Size& rWinSize, const Font& rWinFont ); void Init( const Size& rWinSize ); + +private: void InvalidateControl(); - void ImplSetRotation( sal_Int32 nAngle, bool bBroadcast ); void ImplSetFieldLink( const Link& rLink ); - void HandleMouseEvent( const Point& rPos, bool bInitial ); - void HandleEscapeEvent(); DECL_LINK( LinkedFieldModifyHdl, NumericField* ); - - std::auto_ptr< DialControl_Impl > mpImpl; }; // ============================================================================ diff --git a/svx/inc/svx/dialogs.hrc b/svx/inc/svx/dialogs.hrc index a1e1835d0c0d..d95bc5515a45 100644 --- a/svx/inc/svx/dialogs.hrc +++ b/svx/inc/svx/dialogs.hrc @@ -30,8 +30,8 @@ // Resource-Id's ------------------------------------------------------------ -// Bitte FIRSTFREE pflegen!!! (gilt nicht f"ur Strings) -#define RID_SVX_FIRSTFREE 305 +// !!! IMPORTANT: consider and update FIRSTFREE when introducing new RIDs !!! (not for RIDs for Strings - they have there own) +#define RID_SVX_FIRSTFREE 323 // some strings also used in CUI #define RID_SVXERRCTX (RID_SVX_START + 351) @@ -56,7 +56,6 @@ #define RID_SVXSTR_GALLERY_PREVIEW (RID_SVX_START + 255) //-----IAccessibility2 Implementation 2009 - // factory IDs of tabpages implemented in CUI #define RID_SVXPAGE_CHAR_TWOLINES (RID_SVX_START + 242) #define RID_SVXPAGE_EXT_PARAGRAPH (RID_SVX_START + 7) @@ -353,7 +352,33 @@ #define RID_SVXDLG_TEXTCONTROL_CHARATTR (RID_SVX_START + 286) #define RID_SVXDLG_TEXTCONTROL_PARAATTR (RID_SVX_START + 287) -// !!! please update RID_SVX_FIRSTFREE !!! see line 46 +#define RID_SIDEBAR_TEXT_PANEL (RID_SVX_START + 305) +#define RID_POPUPPANEL_TEXTPAGE_UNDERLINE (RID_SVX_START + 306) +#define RID_POPUPPANEL_TEXTPAGE_FONT_COLOR (RID_SVX_START + 307) +#define RID_POPUPPANEL_TEXTPAGE_SPACING (RID_SVX_START + 308) + +#define RID_SIDEBAR_AREA_PANEL (RID_SVX_START + 309) +#define RID_POPUPPANEL_AERAPAGE_COLOR (RID_SVX_START + 310) +#define RID_POPUPPANEL_AREAPAGE_TRGR (RID_SVX_START + 311) + +#define RID_SIDEBAR_LINE_PANEL (RID_SVX_START + 312) +#define RID_POPUPPANEL_LINEPAGE_COLOR (RID_SVX_START + 313) +#define RID_POPUPPANEL_LINEPAGE_STYLE (RID_SVX_START + 314) +#define RID_POPUPPANEL_LINEPAGE_WIDTH (RID_SVX_START + 315) + +#define RID_SIDEBAR_POSSIZE_PANEL (RID_SVX_START + 316) +#define RID_SIDEBAR_GRAPHIC_PANEL (RID_SVX_START + 317) +#define RID_SIDEBAR_EMPTY_PANEL (RID_SVX_START + 318) + +#define RID_SIDEBAR_PARA_PANEL (RID_SVX_START + 319) +#define RID_POPUPPANEL_PARAPAGE_LINESPACING (RID_SVX_START + 320) +#define RID_POPUPPANEL_PARAPAGE_BULLETS (RID_SVX_START + 321) +#define RID_POPUPPANEL_PARAPAGE_NUMBERING (RID_SVX_START + 322) + +// !!! IMPORTANT: consider and update RID_SVX_FIRSTFREE when introducing new RIDs !!! (see above) + + + // Strings ------------------------------------------------------------------ @@ -597,7 +622,7 @@ #define RID_SVXSTR_LINECAP_ROUND (RID_SVX_START + 587 ) #define RID_SVXSTR_LINECAP_SQUARE (RID_SVX_START + 588 ) -// string resources for XLineJoint item +// string resources for com::sun::star::drawing::LineJoint item #define RID_SVXSTR_LINEJOINT_NONE RID_SVXSTR_NONE #define RID_SVXSTR_LINEJOINT_MIDDLE (RID_SVX_START + 589 ) #define RID_SVXSTR_LINEJOINT_BEVEL (RID_SVX_START + 590 ) @@ -919,14 +944,67 @@ #define RID_SVXSTR_OUTLINENUM_DESCRIPTION_5 (RID_SVXSTR_OUTLINENUM_DESCRIPTIONS + 5)//? #define RID_SVXSTR_OUTLINENUM_DESCRIPTION_6 (RID_SVXSTR_OUTLINENUM_DESCRIPTIONS + 6)//? #define RID_SVXSTR_OUTLINENUM_DESCRIPTION_7 (RID_SVXSTR_OUTLINENUM_DESCRIPTIONS + 7)//? - -#define RID_SVXSTR_FINDBAR_FIND (RID_SVX_START + 1190) - -#define RID_SVXSTR_NEXTFREE (RID_SVX_START + 1191) +#define RID_SVXSTR_SIDEBAR_BULLET_DESCRIPTIONS (RID_SVX_START + 1172) +#define RID_SVXSTR_SIDEBAR_BULLET_DESCRIPTIONS_0 (RID_SVXSTR_SIDEBAR_BULLET_DESCRIPTIONS + 0) +#define RID_SVXSTR_SIDEBAR_BULLET_DESCRIPTIONS_1 (RID_SVXSTR_SIDEBAR_BULLET_DESCRIPTIONS + 1) +#define RID_SVXSTR_SIDEBAR_BULLET_DESCRIPTIONS_2 (RID_SVXSTR_SIDEBAR_BULLET_DESCRIPTIONS + 2) +#define RID_SVXSTR_SIDEBAR_BULLET_DESCRIPTIONS_3 (RID_SVXSTR_SIDEBAR_BULLET_DESCRIPTIONS + 3) +#define RID_SVXSTR_SIDEBAR_BULLET_DESCRIPTIONS_4 (RID_SVXSTR_SIDEBAR_BULLET_DESCRIPTIONS + 4) //IAccessibility2 Implementation 2009----- #define RID_SVXSTR_TEXTCOLOR (RID_SVX_START + 1178) //-----IAccessibility2 Implementation 2009 + +#define RID_SVXSTR_FINDBAR_FIND (RID_SVX_START + 1190) + +#define RID_SVXSTR_NUMBULLET_NONE (RID_SVX_START + 1191) +#define RID_SVXSTR_NUMBULLET_CURRENT_LIST_DESCRIPTION (RID_SVX_START + 1192) +#define RID_SVXSTR_NUMBULLET_CUSTOM_BULLET_DESCRIPTION (RID_SVX_START + 1193) +#define RID_SVXSTR_NUMBULLET_CUSTOM_NUMBERING_DESCRIPTION (RID_SVX_START + 1194) +#define RID_SVXSTR_NUMBULLET_CUSTOM_MULTILEVEL_DESCRIPTION (RID_SVX_START + 1195) +#define RID_SVXSTR_NUMBULLET_CUSTOMIZED_WATERMARK (RID_SVX_START + 1196) +#define RID_SVXSTR_BULLET_RTL_DESCRIPTION_4 (RID_SVX_START + 1197) +#define RID_SVXSTR_BULLET_RTL_DESCRIPTION_5 (RID_SVX_START + 1198) +#define RID_SVXSTR_OUTLINENUM_RTL_DESCRIPTION_7 (RID_SVX_START + 1199) + +#define RID_SVXSTR_GRAPHICS_DESCRIPTIONS (RID_SVX_START + 1200) +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_0 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 0) // 1200 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_1 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 1) // 1201 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_2 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 2) // 1202 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_3 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 3) // 1203 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_4 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 4) // 1204 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_5 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 5) // 1205 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_6 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 6) // 1206 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_7 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 7) // 1207 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_8 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 8) // 1208 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_9 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 9) // 1209 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_10 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 10) // 1210 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_11 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 11) // 1211 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_12 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 12) // 1212 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_13 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 13) // 1213 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_14 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 14) // 1214 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_15 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 15) // 1215 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_16 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 16) // 1216 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_17 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 17) // 1217 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_18 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 18) // 1218 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_19 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 19) // 1219 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_20 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 20) // 1220 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_21 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 21) // 1221 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_22 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 22) // 1222 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_23 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 23) // 1223 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_24 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 24) // 1224 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_25 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 25) // 1225 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_26 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 26) // 1226 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_27 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 27) // 1227 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_28 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 28) // 1228 +#define RID_SVXSTR_GRAPHICS_DESCRIPTION_29 (RID_SVXSTR_GRAPHICS_DESCRIPTIONS + 29) // 1229 + +// !!! IMPORTANT: consider and update RID_SVXSTR_NEXTFREE when introducing new RIDs for Strings !!! +#define RID_SVXSTR_NEXTFREE (RID_SVX_START + 1230) + + + + // ---------------------------------------------------------------------------- // if we have _a_lot_ time, we should group the resource ids by type, instead // of grouping them by semantics. The reason is that resource ids have to be diff --git a/svx/inc/svx/dlgctrl.hxx b/svx/inc/svx/dlgctrl.hxx index f7593c252813..c15a948ef166 100644 --- a/svx/inc/svx/dlgctrl.hxx +++ b/svx/inc/svx/dlgctrl.hxx @@ -34,7 +34,7 @@ class XBitmapEntry; class XBitmapList; class XColorEntry; -class XColorTable; +class XColorList; class XDash; class XDashEntry; class XDashList; @@ -259,7 +259,7 @@ public: ColorLB( Window* pParent, ResId Id ) : ColorListBox( pParent, Id ) {} ColorLB( Window* pParent, WinBits aWB ) : ColorListBox( pParent, aWB ) {} - virtual void Fill( const XColorTable* pTab ); + virtual void Fill( const XColorList* pTab ); void Append( XColorEntry* pEntry, Bitmap* pBmp = NULL ); void Modify( XColorEntry* pEntry, sal_uInt16 nPos, Bitmap* pBmp = NULL ); @@ -327,8 +327,8 @@ public: virtual void Fill(const XBitmapList* pList); virtual void UserDraw(const UserDrawEvent& rUDEvt); - void Append(XBitmapEntry* pEntry, BitmapEx* pBmpEx = 0); - void Modify(XBitmapEntry* pEntry, sal_uInt16 nPos, BitmapEx* pBmpEx = 0); + void Append(const Size& rSize, const XBitmapEntry& rEntry, BitmapEx* pBmpEx = 0); + void Modify(const Size& rSize, const XBitmapEntry& rEntry, sal_uInt16 nPos, BitmapEx* pBmpEx = 0); void SelectEntryByList(const XBitmapList* pList, const String& rStr); private: @@ -338,7 +338,7 @@ private: XBitmapList* mpList; bool mbUserDraw; - SVX_DLLPRIVATE void SetVirtualDevice(); + SVX_DLLPRIVATE void SetVirtualDevice(const Size& rSize); }; /************************************************************************* @@ -352,13 +352,13 @@ private: VirtualDevice maVD; BitmapEx maBitmapEx; - void SetVirtualDevice(); + void SetVirtualDevice(const Size& rSize); public: FillAttrLB( Window* pParent, ResId Id ); FillAttrLB( Window* pParent, WinBits aWB ); - virtual void Fill( const XColorTable* pTab ); + virtual void Fill( const XColorList* pTab ); virtual void Fill( const XHatchList* pList ); virtual void Fill( const XGradientList* pList ); virtual void Fill( const XBitmapList* pList ); @@ -395,11 +395,11 @@ public: virtual void Fill( const XDashList* pList ); - void Append( XDashEntry* pEntry, Bitmap* pBmp = NULL ); - void Modify( XDashEntry* pEntry, sal_uInt16 nPos, Bitmap* pBmp = NULL ); + void Append( XDashEntry* pEntry, const Bitmap* pBmp = NULL ); + void Modify( XDashEntry* pEntry, sal_uInt16 nPos, const Bitmap* pBmp = NULL ); void SelectEntryByList( const XDashList* pList, const String& rStr, const XDash& rDash, sal_uInt16 nDist = 0 ); - void FillStyles(); + // void FillStyles(); }; /************************************************************************* @@ -411,14 +411,15 @@ class SVX_DLLPUBLIC LineEndLB : public ListBox { public: - LineEndLB( Window* pParent, ResId Id ) : ListBox( pParent, Id ) {} - LineEndLB( Window* pParent, WinBits aWB ) : ListBox( pParent, aWB ) {} + LineEndLB( Window* pParent, ResId Id ); + LineEndLB( Window* pParent, WinBits aWB ); + virtual ~LineEndLB (void); virtual void Fill( const XLineEndList* pList, sal_Bool bStart = sal_True ); - void Append( XLineEndEntry* pEntry, Bitmap* pBmp = NULL, + void Append( XLineEndEntry* pEntry, const Bitmap* pBmp = NULL, sal_Bool bStart = sal_True ); - void Modify( XLineEndEntry* pEntry, sal_uInt16 nPos, Bitmap* pBmp = NULL, + void Modify( XLineEndEntry* pEntry, sal_uInt16 nPos, const Bitmap* pBmp = NULL, sal_Bool bStart = sal_True ); }; diff --git a/svx/inc/svx/dlgutil.hxx b/svx/inc/svx/dlgutil.hxx index e42efd6b398b..0edab504b2dd 100644 --- a/svx/inc/svx/dlgutil.hxx +++ b/svx/inc/svx/dlgutil.hxx @@ -34,7 +34,8 @@ // Functions ------------------------------------------------------------- class SfxItemSet; -SVX_DLLPUBLIC FieldUnit GetModuleFieldUnit( const SfxItemSet& ); +SVX_DLLPUBLIC FieldUnit GetModuleFieldUnit(const SfxItemSet&); +SVX_DLLPUBLIC FieldUnit GetModuleFieldUnit(); #define OUTPUT_DRAWMODE_COLOR (DRAWMODE_DEFAULT) #define OUTPUT_DRAWMODE_CONTRAST (DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT) diff --git a/svx/inc/svx/drawitem.hxx b/svx/inc/svx/drawitem.hxx index c0de777b2657..a5a683801956 100644 --- a/svx/inc/svx/drawitem.hxx +++ b/svx/inc/svx/drawitem.hxx @@ -34,16 +34,16 @@ // SvxColorTableItem //================================================================== -class XColorTable; +class XColorList; class SVX_DLLPUBLIC SvxColorTableItem: public SfxPoolItem { - XColorTable* pColorTable; + XColorList* pColorTable; public: TYPEINFO(); SvxColorTableItem(); - SvxColorTableItem( XColorTable* pTable, + SvxColorTableItem( XColorList* pTable, sal_uInt16 nWhich ); SvxColorTableItem( const SvxColorTableItem& ); @@ -57,8 +57,8 @@ public: virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const; virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ); - XColorTable* GetColorTable() const { return pColorTable; } - void SetColorTable( XColorTable* pTable ) { + XColorList* GetColorTable() const { return pColorTable; } + void SetColorTable( XColorList* pTable ) { pColorTable = pTable; } }; diff --git a/svx/inc/svx/fontwork.hxx b/svx/inc/svx/fontwork.hxx index 9a97b2472c71..323297dcfc66 100644 --- a/svx/inc/svx/fontwork.hxx +++ b/svx/inc/svx/fontwork.hxx @@ -132,7 +132,7 @@ class SVX_DLLPUBLIC SvxFontWorkDialog : public SfxDockingWindow ImageList maImageList; ImageList maImageListH; - const XColorTable* pColorTable; + const XColorList* pColorTable; #ifdef _SVX_FONTWORK_CXX friend class SvxFontWorkChildWindow; @@ -175,7 +175,7 @@ class SVX_DLLPUBLIC SvxFontWorkDialog : public SfxDockingWindow const ResId& rResId ); ~SvxFontWorkDialog(); - void SetColorTable(const XColorTable* pTable); + void SetColorTable(const XColorList* pTable); void SetActive(sal_Bool bActivate = sal_True); }; diff --git a/svx/inc/svx/galbrws.hxx b/svx/inc/svx/galbrws.hxx index b7ad3ccec64c..834c5659ed84 100644 --- a/svx/inc/svx/galbrws.hxx +++ b/svx/inc/svx/galbrws.hxx @@ -19,8 +19,6 @@ * *************************************************************/ - - #ifndef _SVX_GALBRWS_HXX_ #define _SVX_GALBRWS_HXX_ @@ -64,7 +62,7 @@ class GalleryBrowser2; class GallerySplitter; class Gallery; -class GalleryBrowser : public SfxDockingWindow +class SVX_DLLPUBLIC GalleryBrowser : public SfxDockingWindow { friend class GalleryBrowser1; friend class GalleryBrowser2; @@ -72,19 +70,16 @@ class GalleryBrowser : public SfxDockingWindow using Window::KeyInput; private: - Size maLastSize; GallerySplitter* mpSplitter; GalleryBrowser1* mpBrowser1; GalleryBrowser2* mpBrowser2; Gallery* mpGallery; - long mnDummy1; - long mnDummy2; - long mnDummy3; + /// bitfield void InitSettings(); - virtual sal_Bool Close(); + virtual sal_Bool Close(); virtual void Resize(); virtual void GetFocus(); diff --git a/svx/inc/svx/nbdtmg.hxx b/svx/inc/svx/nbdtmg.hxx new file mode 100755 index 000000000000..047fcb508644 --- /dev/null +++ b/svx/inc/svx/nbdtmg.hxx @@ -0,0 +1,390 @@ +/************************************************************** + * + * 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 _NBDTMG_HXX +#define _NBDTMG_HXX +#include "svx/svxdllapi.h" + +#ifndef _SVX_NUMITEM_HXX +#include <editeng/numitem.hxx> +#endif +#define _SVSTDARR_USHORTS +#include <svl/svstdarr.hxx> +#include <svl/svarray.hxx> +#ifndef _LIST_HXX +#include <tools/list.hxx> +#endif +#ifndef _SV_FONT_HXX +#include <vcl/font.hxx> +#endif + +namespace svx { namespace sidebar { + +#define DEFAULT_BULLET_TYPES 8 +#define DEFAULT_NONE 10 +#define DEFAULT_NUM_TYPE_MEMBER 5 +#define DEFAULT_NUM_VALUSET_COUNT 8 +#define DEFAULT_NUMBERING_CACHE_FORMAT_VERSION 0x10 + +typedef sal_uInt16 NBOType; +namespace eNBOType +{ + const NBOType BULLETS = 0x01; + const NBOType GRAPHICBULLETS = 0x02; + const NBOType NUMBERING = 0x03; + const NBOType OUTLINE = 0x04; + const NBOType MIXBULLETS = 0x05; +} + +typedef sal_uInt16 NBType; +namespace eNBType +{ + const NBOType BULLETS = 0x01; + const NBOType GRAPHICBULLETS = 0x02; +} + +class SVX_DLLPUBLIC NumSettings_Impl +{ + public: + short nNumberType; + short nParentNumbering; + SvxNumberFormat::SvxNumLabelFollowedBy eLabelFollowedBy; + long nTabValue; + SvxAdjust eNumAlign; + long nNumAlignAt; + long nNumIndentAt; + rtl::OUString sPrefix; + rtl::OUString sSuffix; + rtl::OUString sBulletChar; + rtl::OUString sBulletFont; + SvxBrushItem *pBrushItem; + Size aSize; + + public: + NumSettings_Impl() : + nNumberType(0), + pBrushItem(0), + aSize(0,0), + nParentNumbering(0) + {} + ~NumSettings_Impl(){} +}; +/* +typedef NumSettings_Impl* NumSettings_ImplPtr; +SV_DECL_PTRARR_DEL(NumSettingsArr_Impl,NumSettings_ImplPtr,8,4) +SV_IMPL_PTRARR( NumSettingsArr_Impl, NumSettings_ImplPtr )*/ + +class NumSettingsArr_Impl; + +class SVX_DLLPUBLIC BulletsSettings +{ + public: + sal_Bool bIsCustomized; + rtl::OUString sDescription; + NBType eType; + public: + BulletsSettings(NBType eTy) : + bIsCustomized(sal_False), + eType(eTy) + {} + virtual ~BulletsSettings(){} +}; + +class SVX_DLLPUBLIC BulletsSettings_Impl:public BulletsSettings +{ + public: + sal_Unicode cBulletChar; + //rtl::OUString sBulletFont; + Font aFont; + + public: + BulletsSettings_Impl(NBType eTy) : + BulletsSettings(eTy) + {} + virtual ~BulletsSettings_Impl(){} +}; + +class SVX_DLLPUBLIC GrfBulDataRelation: public BulletsSettings +{ + public: + String sGrfName; + sal_uInt16 nTabIndex; + sal_uInt16 nGallaryIndex; + const Graphic* pGrfObj; + Size aSize; + GrfBulDataRelation(NBType eTy): + BulletsSettings(eTy), + nTabIndex((sal_uInt16)0xFFFF), + nGallaryIndex((sal_uInt16)0xFFFF), + aSize(0,0), + pGrfObj(0) + {} + virtual ~GrfBulDataRelation(){} +}; + +class SVX_DLLPUBLIC MixBulletsSettings_Impl +{ + public: + NBType eType; + sal_uInt16 nIndex; //index in the tab page display + sal_uInt16 nIndexDefault; + BulletsSettings* pBullets; + public: + MixBulletsSettings_Impl(NBType eTy) : + eType(eTy), + nIndex((sal_uInt16)0xFFFF), + nIndexDefault((sal_uInt16)0xFFFF), + pBullets(0) + {} + ~MixBulletsSettings_Impl(){} +}; + +class SVX_DLLPUBLIC NumberSettings_Impl +{ + public: + sal_Bool bIsCustomized; + rtl::OUString sDescription; + sal_uInt16 nIndex; //index in the tab page display + sal_uInt16 nIndexDefault; + NumSettings_Impl *pNumSetting; + public: + NumberSettings_Impl() : + bIsCustomized(sal_False), + nIndex((sal_uInt16)0xFFFF), + nIndexDefault((sal_uInt16)0xFFFF), + pNumSetting(NULL) + {} + ~NumberSettings_Impl(){} +}; + +class NumberSettingsArr_Impl; + +class SVX_DLLPUBLIC OutlineSettings_Impl +{ + public: + sal_Bool bIsCustomized; + rtl::OUString sDescription; + NumSettingsArr_Impl *pNumSettingsArr; + public: + OutlineSettings_Impl() : + bIsCustomized(sal_False), + pNumSettingsArr(NULL) + {} + ~OutlineSettings_Impl(){ + } +}; + +class SVX_DLLPUBLIC NBOTypeMgrBase +{ + public: + NBOType eType; + private: + const SfxItemSet* pSet; + SfxMapUnit eCoreUnit; + //Sym3_2508 store the attributes passed from pSet + String aNumCharFmtName; + void StoreBulCharFmtName_impl(); + void StoreMapUnit_impl(); + + public: + NBOTypeMgrBase(const NBOType aType):eType(aType),pSet(0),eCoreUnit(SFX_MAPUNIT_TWIP),aNumCharFmtName(String()){} + NBOTypeMgrBase(const NBOType aType,const SfxItemSet* pArg):eType(aType),pSet(pArg),eCoreUnit(SFX_MAPUNIT_TWIP),aNumCharFmtName(String()){} + NBOTypeMgrBase(const NBOTypeMgrBase& aTypeMgr){eType = aTypeMgr.eType;pSet = aTypeMgr.pSet;eCoreUnit = aTypeMgr.eCoreUnit;aNumCharFmtName = aTypeMgr.aNumCharFmtName; } + virtual ~NBOTypeMgrBase() {} + virtual void Init()=0; + virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0)=0; + virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF)=0; + virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF, sal_Bool isDefault=false,sal_Bool isResetSize=false)=0; + virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false)=0; + virtual sal_Bool IsCustomized(sal_uInt16 nIndex)=0; + sal_uInt16 IsSingleLevel(sal_uInt16 nCurLevel); + const SfxItemSet* GetItems() { return pSet;} + //Sym3_2508 store the attributes passed from pSet + void SetItems(const SfxItemSet* pArg) { pSet = pArg;StoreBulCharFmtName_impl();StoreMapUnit_impl();} + protected: + String GetBulCharFmtName(); + SfxMapUnit GetMapUnit(); + protected: + sal_Bool bIsLoading; + void ImplLoad(String filename); + void ImplStore(String filename); + +}; + + +class SVX_DLLPUBLIC BulletsTypeMgr: public NBOTypeMgrBase +{ + friend class OutlineTypeMgr; + friend class NumberingTypeMgr; + public: + static sal_Unicode aDynamicBulletTypes[DEFAULT_BULLET_TYPES]; + static sal_Unicode aDynamicRTLBulletTypes[DEFAULT_BULLET_TYPES]; + static BulletsSettings_Impl* pActualBullets[DEFAULT_BULLET_TYPES]; + static BulletsTypeMgr* _instance; + public: + BulletsTypeMgr(const NBOType aType); + BulletsTypeMgr(const NBOType aType,const SfxItemSet* pArg); + BulletsTypeMgr(const BulletsTypeMgr& aTypeMgr); + virtual ~BulletsTypeMgr() {} + virtual void Init(); + virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0); + virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF); + virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool isResetSize=false); + virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false); + virtual sal_Bool IsCustomized(sal_uInt16 nIndex); + sal_Unicode GetBulChar(sal_uInt16 nIndex); + Font GetBulCharFont(sal_uInt16 nIndex); + static BulletsTypeMgr* GetInstance() + { + if ( _instance == 0 ) + { + _instance = new BulletsTypeMgr(eNBOType::BULLETS); + } + + return _instance; + } + +}; + +class SVX_DLLPUBLIC GraphyicBulletsTypeMgr: public NBOTypeMgrBase +{ + friend class OutlineTypeMgr; + friend class NumberingTypeMgr; + public: + List aGrfDataLst; + static GraphyicBulletsTypeMgr* _instance; + public: + GraphyicBulletsTypeMgr(const NBOType aType); + GraphyicBulletsTypeMgr(const NBOType aType,const SfxItemSet* pArg); + GraphyicBulletsTypeMgr(const GraphyicBulletsTypeMgr& aTypeMgr); + virtual ~GraphyicBulletsTypeMgr() {} + virtual void Init(); + virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0); + virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF); + virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool isResetSize=false); + virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false); + virtual sal_Bool IsCustomized(sal_uInt16 nIndex); + String GetGrfName(sal_uInt16 nIndex); + static GraphyicBulletsTypeMgr* GetInstance() + { + if ( _instance == 0 ) + { + _instance = new GraphyicBulletsTypeMgr(eNBOType::BULLETS); + } + + return _instance; + } + +}; + +class SVX_DLLPUBLIC MixBulletsTypeMgr: public NBOTypeMgrBase +{ + friend class OutlineTypeMgr; + friend class NumberingTypeMgr; + public: + static MixBulletsSettings_Impl* pActualBullets[DEFAULT_BULLET_TYPES]; + static MixBulletsSettings_Impl* pDefaultActualBullets[DEFAULT_BULLET_TYPES]; + static MixBulletsTypeMgr* _instance; + public: + MixBulletsTypeMgr(const NBOType aType); + MixBulletsTypeMgr(const NBOType aType,const SfxItemSet* pArg); + MixBulletsTypeMgr(const MixBulletsTypeMgr& aTypeMgr); + virtual ~MixBulletsTypeMgr() {} + virtual void Init(); + virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0); + virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF); + virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool isResetSize=false); + virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false); + virtual sal_Bool IsCustomized(sal_uInt16 nIndex); + static MixBulletsTypeMgr* GetInstance() + { + if ( _instance == 0 ) + { + _instance = new MixBulletsTypeMgr(eNBOType::MIXBULLETS); + } + + return _instance; + } + +}; + +class SVX_DLLPUBLIC NumberingTypeMgr: public NBOTypeMgrBase +{ + public: + //NumSettingsArr_Impl* pNumSettingsArr; + NumberSettingsArr_Impl* pNumberSettingsArr; + NumberSettingsArr_Impl* pDefaultNumberSettingsArr; + static NumberingTypeMgr* _instance; + public: + NumberingTypeMgr(const NBOType aType); + NumberingTypeMgr(const NBOType aType,const SfxItemSet* pArg); + NumberingTypeMgr(const NumberingTypeMgr& aTypeMgr); + virtual ~NumberingTypeMgr() {} + virtual void Init(); + virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0); + virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF); + virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool isResetSize=false); + virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false); + virtual sal_Bool IsCustomized(sal_uInt16 nIndex); + sal_uInt16 GetNumCount() const; + NumberSettings_Impl* GetNumSettingByIndex(sal_uInt16 nIndex) const; + static NumberingTypeMgr* GetInstance() + { + if ( _instance == 0 ) + { + _instance = new NumberingTypeMgr(eNBOType::NUMBERING); + } + + return _instance; + } +}; + +class SVX_DLLPUBLIC OutlineTypeMgr: public NBOTypeMgrBase +{ + public: + //NumSettingsArr_Impl* pNumSettingsArrs[DEFAULT_NUM_VALUSET_COUNT]; + OutlineSettings_Impl* pOutlineSettingsArrs[DEFAULT_NUM_VALUSET_COUNT]; + OutlineSettings_Impl* pDefaultOutlineSettingsArrs[DEFAULT_NUM_VALUSET_COUNT]; + static OutlineTypeMgr* _instance; + public: + OutlineTypeMgr(const NBOType aType); + OutlineTypeMgr(const NBOType aType,const SfxItemSet* pArg); + OutlineTypeMgr(const OutlineTypeMgr& aTypeMgr); + virtual ~OutlineTypeMgr() {} + virtual void Init(); + virtual sal_uInt16 GetNBOIndexForNumRule(SvxNumRule& aNum,sal_uInt16 mLevel,sal_uInt16 nFromIndex=0); + virtual sal_Bool RelplaceNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF); + virtual sal_Bool ApplyNumRule(SvxNumRule& aNum,sal_uInt16 nIndex,sal_uInt16 mLevel=(sal_uInt16)0xFFFF,sal_Bool isDefault=false,sal_Bool isResetSize=false); + virtual String GetDescription(sal_uInt16 nIndex,sal_Bool isDefault=false); + virtual sal_Bool IsCustomized(sal_uInt16 nIndex); + static OutlineTypeMgr* GetInstance() + { + if ( _instance == 0 ) + { + _instance = new OutlineTypeMgr(eNBOType::OUTLINE); + } + + return _instance; + } +}; +}} +#endif + diff --git a/svx/inc/svx/nbdtmgfact.hxx b/svx/inc/svx/nbdtmgfact.hxx new file mode 100755 index 000000000000..7aedc5116e8b --- /dev/null +++ b/svx/inc/svx/nbdtmgfact.hxx @@ -0,0 +1,37 @@ +/************************************************************** + * + * 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 _NBDTMGFACT_HXX +#define _NBDTMGFACT_HXX +#ifndef _NBDTMG_HXX +#include "nbdtmg.hxx" +#endif +namespace svx { namespace sidebar { +class SVX_DLLPUBLIC NBOutlineTypeMgrFact +{ +public: + static NBOTypeMgrBase* CreateInstance(const NBOType aType); + NBOutlineTypeMgrFact(); + virtual ~NBOutlineTypeMgrFact() {} +}; +}} +#endif + diff --git a/svx/inc/svx/sdr/table/tablecontroller.hxx b/svx/inc/svx/sdr/table/tablecontroller.hxx new file mode 100755 index 000000000000..f6494ed6027e --- /dev/null +++ b/svx/inc/svx/sdr/table/tablecontroller.hxx @@ -0,0 +1,169 @@ +/************************************************************** + * + * 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_TABLECONTROLLER_HXX_ +#define _SVX_TABLECONTROLLER_HXX_ + +#include <com/sun/star/util/XModifyListener.hpp> +#include <com/sun/star/table/XTable.hpp> +#include <rtl/ref.hxx> + +#include <svx/sdr/overlay/overlayobjectlist.hxx> +#include <svx/selectioncontroller.hxx> +#include <svx/svdotable.hxx> +#include <svx/svdview.hxx> +//#include <tablemodel.hxx> + +class SdrObjEditView; +class SdrObject; +class SfxItemSet; + +namespace sdr { namespace table { + +class TableModel; + +const sal_Int16 SELTYPE_NONE = 0; +const sal_Int16 SELTYPE_MOUSE = 1; +const sal_Int16 SELTYPE_KEYS = 2; + +class SVX_DLLPUBLIC SvxTableController: public sdr::SelectionController +{ +public: + SVX_DLLPRIVATE SvxTableController( SdrObjEditView* pView, const SdrObject* pObj ); + SVX_DLLPRIVATE virtual ~SvxTableController(); + + // from sdr::SelectionController + SVX_DLLPRIVATE virtual bool onKeyInput(const KeyEvent& rKEvt, Window* pWin); + SVX_DLLPRIVATE virtual bool onMouseButtonDown(const MouseEvent& rMEvt, Window* pWin); + SVX_DLLPRIVATE virtual bool onMouseButtonUp(const MouseEvent& rMEvt, Window* pWin); + SVX_DLLPRIVATE virtual bool onMouseMove(const MouseEvent& rMEvt, Window* pWin); + + SVX_DLLPRIVATE virtual bool DeleteMarked(); + + SVX_DLLPRIVATE virtual void onSelectionHasChanged(); + + SVX_DLLPRIVATE virtual void GetState( SfxItemSet& rSet ); + SVX_DLLPRIVATE virtual void Execute( SfxRequest& rReq ); + + SVX_DLLPRIVATE virtual bool GetStyleSheet( SfxStyleSheet* &rpStyleSheet ) const; + SVX_DLLPRIVATE virtual bool SetStyleSheet( SfxStyleSheet* pStyleSheet, bool bDontRemoveHardAttr ); + + SVX_DLLPRIVATE virtual bool TakeFormatPaintBrush( boost::shared_ptr< SfxItemSet >& rFormatSet ); + SVX_DLLPRIVATE virtual bool ApplyFormatPaintBrush( SfxItemSet& rFormatSet, bool bNoCharacterFormats, bool bNoParagraphFormats ); + + // slots + SVX_DLLPRIVATE void onInsert( sal_uInt16 nSId, const SfxItemSet* pArgs = 0 ); + SVX_DLLPRIVATE void onDelete( sal_uInt16 nSId ); + SVX_DLLPRIVATE void onSelect( sal_uInt16 nSId ); + SVX_DLLPRIVATE void onFormatTable( SfxRequest& rReq ); + SVX_DLLPRIVATE void MergeMarkedCells(); + SVX_DLLPRIVATE void SplitMarkedCells(); + SVX_DLLPRIVATE void DistributeColumns(); + SVX_DLLPRIVATE void DistributeRows(); + SVX_DLLPRIVATE void SetVertical( sal_uInt16 nSId ); + + SVX_DLLPRIVATE static rtl::Reference< sdr::SelectionController > create( SdrObjEditView* pView, const SdrObject* pObj, const rtl::Reference< sdr::SelectionController >& xRefController ); + + SVX_DLLPRIVATE void MergeAttrFromSelectedCells(SfxItemSet& rAttr, bool bOnlyHardAttr) const; + SVX_DLLPRIVATE void SetAttrToSelectedCells(const SfxItemSet& rAttr, bool bReplaceAll); + + SVX_DLLPRIVATE virtual bool GetAttributes(SfxItemSet& rTargetSet, bool bOnlyHardAttr) const; + SVX_DLLPRIVATE virtual bool SetAttributes(const SfxItemSet& rSet, bool bReplaceAll); + + SVX_DLLPRIVATE virtual bool GetMarkedObjModel( SdrPage* pNewPage ); + SVX_DLLPRIVATE virtual bool PasteObjModel( const SdrModel& rModel ); + + SVX_DLLPRIVATE bool hasSelectedCells() const { return mbCellSelectionMode || mpView->IsTextEdit(); } + + void getSelectedCells( CellPos& rFirstPos, CellPos& rLastPos ); + void setSelectedCells( const CellPos& rFirstPos, const CellPos& rLastPos ); + void clearSelection(); + void selectAll(); + + SVX_DLLPRIVATE void onTableModified(); + +private: + SvxTableController(SvxTableController &); // not defined + void operator =(SvxTableController &); // not defined + + // internals + SVX_DLLPRIVATE void ApplyBorderAttr( const SfxItemSet& rAttr ); + SVX_DLLPRIVATE void UpdateTableShape(); + + SVX_DLLPRIVATE void SetTableStyle( const SfxItemSet* pArgs ); + SVX_DLLPRIVATE void SetTableStyleSettings( const SfxItemSet* pArgs ); + + SVX_DLLPRIVATE bool PasteObject( SdrTableObj* pPasteTableObj ); + + SVX_DLLPRIVATE bool checkTableObject(); + SVX_DLLPRIVATE bool updateTableObject(); + SVX_DLLPRIVATE const CellPos& getSelectionStart(); + SVX_DLLPRIVATE void setSelectionStart( const CellPos& rPos ); + SVX_DLLPRIVATE const CellPos& getSelectionEnd(); + SVX_DLLPRIVATE ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellCursor > getSelectionCursor(); + SVX_DLLPRIVATE void checkCell( CellPos& rPos ); + + SVX_DLLPRIVATE void MergeRange( sal_Int32 nFirstCol, sal_Int32 nFirstRow, sal_Int32 nLastCol, sal_Int32 nLastRow ); + + SVX_DLLPRIVATE void EditCell( const CellPos& rPos, ::Window* pWindow, const ::com::sun::star::awt::MouseEvent* pMouseEvent = 0, sal_uInt16 nAction = 0 ); + SVX_DLLPRIVATE bool StopTextEdit(); + + SVX_DLLPRIVATE void DeleteTable(); + + SVX_DLLPRIVATE sal_uInt16 getKeyboardAction( const KeyEvent& rKEvt, Window* pWindow ); + SVX_DLLPRIVATE bool executeAction( sal_uInt16 nAction, bool bSelect, Window* pWindow ); + SVX_DLLPRIVATE void gotoCell( const CellPos& rCell, bool bSelect, Window* pWindow, sal_uInt16 nAction = 0 ); + + SVX_DLLPRIVATE void StartSelection( const CellPos& rPos ); + SVX_DLLPRIVATE void UpdateSelection( const CellPos& rPos ); + SVX_DLLPRIVATE void RemoveSelection(); + SVX_DLLPRIVATE void updateSelectionOverlay(); + SVX_DLLPRIVATE void destroySelectionOverlay(); + + SVX_DLLPRIVATE void findMergeOrigin( CellPos& rPos ); + + DECL_LINK( UpdateHdl, void * ); + + //TableModelRef mxTable; + rtl::Reference< TableModel > mxTable; + + CellPos maCursorFirstPos; + CellPos maCursorLastPos; + bool mbCellSelectionMode; + CellPos maMouseDownPos; + bool mbLeftButtonDown; + ::sdr::overlay::OverlayObjectList* mpSelectionOverlay; + + SdrView* mpView; + SdrObjectWeakRef mxTableObj; + SdrModel* mpModel; + + ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener > mxModifyListener; + + sal_uLong mnUpdateEvent; +}; + +} } + +#endif // _SVX_TABLECONTROLLER_HXX_ + diff --git a/svx/inc/svx/sidebar/ColorControl.hxx b/svx/inc/svx/sidebar/ColorControl.hxx new file mode 100644 index 000000000000..de84aab91723 --- /dev/null +++ b/svx/inc/svx/sidebar/ColorControl.hxx @@ -0,0 +1,86 @@ +/************************************************************** + * + * 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. + * + *************************************************************/ + +#include "svx/sidebar/PopupControl.hxx" + +#include <svtools/valueset.hxx> +#include <boost/function.hpp> + +class Window; +class SfxBindings; +class RedId; +class FloatingWindow; + + +namespace svx { namespace sidebar { + +/** The ColorControl uses a ValueSet control for displaying all named + colors in a matrix. +*/ +class SVX_DLLPUBLIC ColorControl + : public PopupControl +{ +public: + /** Create a new ColorControl object. + @param rControlResId + The resource id for the whole color control. + @param rNoColorGetter + A functor for getting the color which will be returned when the + WB_NONEFIELD is used and got selected + @param rColorSetter + A functor for setting the color that is selected by the + user. + @param pNoColorStringResId + Resource id of an optional string for the "no color" + string. When a value is given then a + field/button is created above the color matrix for + selecting "no color" ie. transparent. + When zero is given then no such field is created. + */ + ColorControl ( + Window* pParent, + SfxBindings* pBindings, + const ResId& rControlResId, + const ResId& rValueSetResId, + const ::boost::function<Color(void)>& rNoColorGetter, + const ::boost::function<void(String&,Color)>& rColorSetter, + FloatingWindow* pFloatingWindow, + const ResId* pNoColorStringResId); + virtual ~ColorControl (void); + + void GetFocus (void); + void SetCurColorSelect ( + const Color aCol, + const bool bAvl); + +private: + SfxBindings* mpBindings; + ValueSet maVSColor; + FloatingWindow* mpFloatingWindow; + const String msNoColorString; + ::boost::function<Color(void)> maNoColorGetter; + ::boost::function<void(String&,Color)> maColorSetter; + + void FillColors (void); + DECL_LINK(VSSelectHdl, void *); +}; + +} } // end of namespace svx::sidebar diff --git a/svx/inc/svx/sidebar/ColorPopup.hxx b/svx/inc/svx/sidebar/ColorPopup.hxx new file mode 100644 index 000000000000..f4c9ef4fa971 --- /dev/null +++ b/svx/inc/svx/sidebar/ColorPopup.hxx @@ -0,0 +1,55 @@ +/************************************************************** + * + * 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_COLOR_POPUP_HXX_ +#define _SVX_SIDEBAR_COLOR_POPUP_HXX_ + +#include "svx/sidebar/Popup.hxx" + +#include <tools/color.hxx> + + +namespace svx { namespace sidebar { + +/** Popup control that displays all named colors in a matrix. + The number of rows and columns of the matrix are computed from + the number of named colors so that both have roughly the same + value. + + The ColorPopup uses ColorControl as control for its content. +*/ +class SVX_DLLPUBLIC ColorPopup + : public Popup +{ +public : + ColorPopup ( + Window* pParent, + const ::boost::function<PopupControl*(PopupContainer*)>& rControlCreator); + virtual ~ColorPopup (void); + + void SetCurrentColor ( + const Color aCurrentColor, + const bool bIsColorAvailable); +}; + +} } // end of namespace svx::sidebar + +#endif diff --git a/svx/inc/svx/sidebar/ContextChangeEventMultiplexer.hxx b/svx/inc/svx/sidebar/ContextChangeEventMultiplexer.hxx new file mode 100644 index 000000000000..1d661d8f0a58 --- /dev/null +++ b/svx/inc/svx/sidebar/ContextChangeEventMultiplexer.hxx @@ -0,0 +1,69 @@ +/************************************************************** + * + * 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_CONTEXT_CHANGE_EVENT_MULTIPLEXER_HXX_ +#define _SVX_SIDEBAR_CONTEXT_CHANGE_EVENT_MULTIPLEXER_HXX_ + +#include "svx/svxdllapi.h" +#include <sfx2/sidebar/EnumContext.hxx> +#include <com/sun/star/frame/XController.hpp> +#include <com/sun/star/frame/XFrame.hpp> + +namespace css = ::com::sun::star; +namespace cssu = ::com::sun::star::uno; + +class SfxViewShell; + +/** Convenience frontend for com::sun::star::ui::ContextChangeEventMultiplexer +*/ +class SVX_DLLPUBLIC ContextChangeEventMultiplexer +{ +public: + /** Notify the activation of a context. + @param rxController + This controller is used to determine the module (ie + application like Writer or Calc). + @param eContext + The activated context. + */ + static void NotifyContextChange ( + const cssu::Reference<css::frame::XController>& rxController, + const ::sfx2::sidebar::EnumContext::Context eContext); + + /** Notify the activation of a context. + @param pViewShell + This view shell is used to determine the module (ie + application like Writer or Calc). When <NULL/> then no + notification is made. + @param eContext + The activated context. + */ + static void NotifyContextChange ( + SfxViewShell* pViewShell, + const ::sfx2::sidebar::EnumContext::Context eContext); + +private: + static ::rtl::OUString GetModuleName ( + const cssu::Reference<css::frame::XFrame>& rxFrame); +}; + +#endif + diff --git a/svx/inc/svx/sidebar/Popup.hxx b/svx/inc/svx/sidebar/Popup.hxx new file mode 100644 index 000000000000..00d48af259e0 --- /dev/null +++ b/svx/inc/svx/sidebar/Popup.hxx @@ -0,0 +1,107 @@ +/************************************************************** + * + * 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_POPUP_HXX_ +#define _SVX_SIDEBAR_POPUP_HXX_ + +#include "svx/svxdllapi.h" +#include <rtl/ustring.hxx> +#include <tools/link.hxx> + +#include <boost/function.hpp> +#include <boost/scoped_ptr.hpp> + +class Window; +class ToolBox; + +namespace svx { namespace sidebar { + +class PopupContainer; +class PopupControl; + +/** A wrapper around a PopupContainer and a PopupControl object. + Usually used as drop down for a toolbox. Use Show() to start + drop down mode and Hide() to end it. +*/ +class SVX_DLLPUBLIC Popup +{ +public : + /** Create a Popup wrapper object. + @param pParent + Parent window of the PopupContainer, which in turn is the + parent of the PopupControl. + @param rControlCreator + A functor that is called to create the PopupControl object + (usually an instance of a class derived from + PopupControl). + */ + Popup ( + Window* pParent, + const ::boost::function<PopupControl*(PopupContainer*)>& rControlCreator, + const ::rtl::OUString& rsAccessibleName); + virtual ~Popup (void); + + /** Show the popup. + @rToolBox + The tool box is used to determine the position at which + the popup is displayed. + */ + void Show (ToolBox& rToolBox); + + /** Hide the popup. + This method is called automatically when eg. the user clicks + outside the popup or when the ESC-key is pressed. The + application can call Hide() when the popup should be closed + for other, non-standard reasons. + */ + void Hide (void); + + /** If you want to be informed when the popup closes then add a + callback that is called after that. + */ + void SetPopupModeEndHandler (const ::boost::function<void(void)>& rCallback); + +protected: + ::boost::scoped_ptr<PopupControl> mpControl; + + /** Make sure that both PopupContainer and PopupControl objects + exist. Calls the maControlCreator functor if necessary. + */ + void ProvideContainerAndControl (void); + + /** A derived specialisation class can override this method to do + additional work. + */ + virtual void CreateContainerAndControl (void); + +private: + Window* mpParent; + ::boost::function<PopupControl*(PopupContainer*)> maControlCreator; + ::boost::function<void(void)> maPopupModeEndCallback; + const ::rtl::OUString msAccessibleName; + ::boost::scoped_ptr<PopupContainer> mpContainer; + + DECL_LINK(PopupModeEndHandler, void*); +}; + +} } // end of namespace svx::sidebar + +#endif diff --git a/svx/inc/svx/sidebar/PopupContainer.hxx b/svx/inc/svx/sidebar/PopupContainer.hxx new file mode 100644 index 000000000000..99c94236fd0f --- /dev/null +++ b/svx/inc/svx/sidebar/PopupContainer.hxx @@ -0,0 +1,48 @@ +/************************************************************** + * + * 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_POPUP_CONTAINER_HXX_ +#define _SVX_SIDEBAR_POPUP_CONTAINER_HXX_ + +#include "svx/svxdllapi.h" +#include <vcl/floatwin.hxx> + +namespace svx { namespace sidebar { + +/** Simple base class for popup container windows used by sidebar + related drop downs. + It initializes the underlying floating window with the right + flags and closes the drop down when appropriate. +*/ +class SVX_DLLPUBLIC PopupContainer + : public FloatingWindow +{ +public: + PopupContainer (Window* pParent); + virtual ~PopupContainer (void); + + virtual long Notify (NotifyEvent& rNEvt); +}; + + +} } // end of namespace svx::sidebar + +#endif diff --git a/svx/inc/svx/sidebar/PopupControl.hxx b/svx/inc/svx/sidebar/PopupControl.hxx new file mode 100644 index 000000000000..449c7c13364c --- /dev/null +++ b/svx/inc/svx/sidebar/PopupControl.hxx @@ -0,0 +1,51 @@ +/************************************************************** + * + * 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_POPUP_CONTROL_HXX_ +#define _SVX_SIDEBAR_POPUP_CONTROL_HXX_ + +#include "svx/svxdllapi.h" +#include <vcl/ctrl.hxx> + +namespace svx { namespace sidebar { + +/** Base class for sidebar related popup controls. + A PopupControl is typically a child of a PopupContainer and + provides the actual content of a popup. + This base class takes care of painting the proper background and + border for sidebar popups. + Specialize by derivation. +*/ +class SVX_DLLPUBLIC PopupControl + : public Control +{ +public : + PopupControl ( + Window* pParent, + const ResId& rResId); + virtual ~PopupControl (void); + + virtual void Paint (const Rectangle& rect); +}; + +} } // end of namespace svx::sidebar + +#endif diff --git a/svx/inc/svx/sidebar/SelectionAnalyzer.hxx b/svx/inc/svx/sidebar/SelectionAnalyzer.hxx new file mode 100644 index 000000000000..3f4fa14af8ef --- /dev/null +++ b/svx/inc/svx/sidebar/SelectionAnalyzer.hxx @@ -0,0 +1,66 @@ +/************************************************************** + * + * 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_SELECTION_ANALYZER_HXX_ +#define _SVX_SIDEBAR_SELECTION_ANALYZER_HXX_ + +#include <sfx2/sidebar/EnumContext.hxx> +#include "svx/svxdllapi.h" + +class SdrMarkList; +class SdrObject; + + +namespace svx { namespace sidebar { + +class SVX_DLLPUBLIC SelectionAnalyzer +{ +public : + static sfx2::sidebar::EnumContext::Context GetContextForSelection_SC ( + const SdrMarkList& rMarkList); + static sfx2::sidebar::EnumContext::Context GetContextForSelection_SD ( + const SdrMarkList& rMarkList, + const bool bIsMasterPage, + const bool bIsHandoutPage, + const bool bIsNotesPage); + +private: + static sfx2::sidebar::EnumContext::Context GetContextForObjectId_SC ( + const sal_uInt16 nObjectId); + static sfx2::sidebar::EnumContext::Context GetContextForObjectId_SD ( + const sal_uInt16 nObjectId, + const bool bIsHandoutPage, + const bool bIsNotesPage); + static sal_uInt32 GetInventorTypeFromMark ( + const SdrMarkList& rMarkList); + static sal_uInt16 GetObjectTypeFromMark ( + const SdrMarkList& rMarkList); + static sal_uInt16 GetObjectTypeFromGroup ( + const SdrObject* pObj); + static bool IsShapeType ( + const sal_uInt16 nType); + static bool IsTextObjType ( + const sal_uInt16 nType); +}; + +} } // end of namespace svx::sidebar + +#endif diff --git a/svx/inc/svx/sidebar/SelectionChangeHandler.hxx b/svx/inc/svx/sidebar/SelectionChangeHandler.hxx new file mode 100644 index 000000000000..1815414e4f9b --- /dev/null +++ b/svx/inc/svx/sidebar/SelectionChangeHandler.hxx @@ -0,0 +1,89 @@ +/************************************************************** + * + * 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_SELECTION_CHANGE_HANDLER_HXX_ +#define _SVX_SIDEBAR_SELECTION_CHANGE_HANDLER_HXX_ + +#include "svx/svxdllapi.h" +#include <sfx2/sidebar/EnumContext.hxx> +#include <com/sun/star/frame/XController.hpp> +#include <com/sun/star/view/XSelectionSupplier.hpp> +#include <com/sun/star/view/XSelectionChangeListener.hpp> + +#include <cppuhelper/compbase1.hxx> +#include <cppuhelper/basemutex.hxx> + +#include <boost/noncopyable.hpp> +#include <boost/function.hpp> + +namespace css = ::com::sun::star; +namespace cssu = ::com::sun::star::uno; + + +class SdrMarkView; + + +namespace svx { namespace sidebar { + +namespace { + typedef ::cppu::WeakComponentImplHelper1 < + css::view::XSelectionChangeListener + > SelectionChangeHandlerInterfaceBase; +} + + +class SVX_DLLPUBLIC SelectionChangeHandler + : private ::boost::noncopyable, + private ::cppu::BaseMutex, + public SelectionChangeHandlerInterfaceBase +{ +public: + SelectionChangeHandler ( + const boost::function<sfx2::sidebar::EnumContext::Context(void)>& rSelectionChangeCallback, + const cssu::Reference<css::frame::XController>& rxController, + const sfx2::sidebar::EnumContext::Context eDefaultContext); + virtual ~SelectionChangeHandler (void); + + virtual void SAL_CALL selectionChanged (const css::lang::EventObject& rEvent) + throw (cssu::RuntimeException); + + virtual void SAL_CALL disposing (const css::lang::EventObject& rEvent) + throw (cssu::RuntimeException); + + virtual void SAL_CALL disposing (void) + throw (cssu::RuntimeException); + + void Connect (void); + void Disconnect (void); + +private: + const boost::function<sfx2::sidebar::EnumContext::Context(void)> maSelectionChangeCallback; + cssu::Reference<css::frame::XController> mxController; + const sfx2::sidebar::EnumContext::Context meDefaultContext; + bool mbIsConnected; +}; + + +} } // end of namespace svx::sidebar + + +#endif + diff --git a/svx/inc/svx/sidebar/SidebarDialControl.hxx b/svx/inc/svx/sidebar/SidebarDialControl.hxx new file mode 100644 index 000000000000..49d6d5f1ee1b --- /dev/null +++ b/svx/inc/svx/sidebar/SidebarDialControl.hxx @@ -0,0 +1,45 @@ +/************************************************************** + * + * 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_DIAL_CONTROL_HXX +#define SVX_SIDEBAR_DIAL_CONTROL_HXX + +#include <svx/dialcontrol.hxx> + +namespace svx { namespace sidebar { + +/** Provide some improvements over the standard DialControl. +*/ +class SVX_DLLPUBLIC SidebarDialControl : public svx::DialControl +{ +public: + SidebarDialControl (Window* pParent, const ResId& rResId); + virtual ~SidebarDialControl (void); + + virtual void MouseButtonDown (const MouseEvent& rMEvt); + +protected: + virtual void HandleMouseEvent (const Point& rPos, bool bInitial); +}; + +} } // end of namespace svx::sidebar + +#endif diff --git a/svx/inc/svx/sidebar/ValueSetWithTextControl.hxx b/svx/inc/svx/sidebar/ValueSetWithTextControl.hxx new file mode 100644 index 000000000000..03531521c5e7 --- /dev/null +++ b/svx/inc/svx/sidebar/ValueSetWithTextControl.hxx @@ -0,0 +1,161 @@ +/************************************************************** + * + * 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_VALUESETWITHTEXT_CONTROL_HXX_ +#define _SVX_SIDEBAR_VALUESETWITHTEXT_CONTROL_HXX_ + +#include "svx/svxdllapi.h" + +#include <svtools/valueset.hxx> +#include <limits.h> +#include <com/sun/star/uno/Reference.h> +#include <com/sun/star/uno/Sequence.h> +#include <com/sun/star/lang/Locale.hpp> + +#include <vcl/image.hxx> + +#include <vector> + +namespace com{namespace sun{ namespace star{ + namespace container{ + class XIndexAccess; + } + namespace beans{ + struct PropertyValue; + } + namespace text{ + class XNumberingFormatter; + } +}}} + +namespace svx { namespace sidebar { + +/** Specialization of class <ValueSet>. + This specialization allows is a one-columned ValueSet which allow + items containing an image and a text or a text and a second text. + + Especially, used for sidebar related controls. +*/ +class SVX_DLLPUBLIC ValueSetWithTextControl : public ValueSet +{ +public: + // control type of specialized <ValueSet>: + // - image + text + // - text + text + enum tControlType + { + IMAGE_TEXT, + TEXT_TEXT + }; + + ValueSetWithTextControl( + const tControlType eControlType, + Window* pParent, + const ResId& rResId); + + virtual ~ValueSetWithTextControl(void); + + // add item for control type IMAGE_TEXT + // if control type does not match IMAGE_TEXT no item is added. + // @param pSelectedItemImage + // selection item image is optional. if not provided, it is the same as the image item + // @param pItemHelpText + // help text is optional. if not provided, it is the same as the item text + void AddItem( + const Image& rItemImage, + const Image* pSelectedItemImage, + const XubString& rItemText, + const XubString* pItemHelpText ); + + // replace item images for control type IMAGE_TEXT + void ReplaceItemImages( + const sal_uInt16 nItemId, + const Image& rItemImage, + const Image* pSelectedItemImage ); + + // add item for control type TEXT_TEXT + // if control type does not match TEXT_TEXT no item is added. + // @param pItemHelpText + // help text is optional. if not provided, it is the same as the item text + void AddItem( + const XubString& rItemText, + const XubString& rItemText2, + const XubString* pItemHelpText ); + + virtual void UserDraw( const UserDrawEvent& rUDEvt ); + +private: + struct ValueSetWithTextItem + { + Image maItemImage; + Image maSelectedItemImage; + XubString maItemText; + XubString maItemText2; + }; + + typedef ::std::vector< ValueSetWithTextItem > tItemList; + + const tControlType meControlType; + tItemList maItems; +}; + +class SVX_DLLPUBLIC SvxNumValueSet2 : public ValueSet +{ + Color aLineColor; + Rectangle aOrgRect; + VirtualDevice* pVDev; + + com::sun::star::uno::Reference<com::sun::star::text::XNumberingFormatter> xFormatter; + com::sun::star::lang::Locale aLocale; + + com::sun::star::uno::Sequence< + com::sun::star::uno::Sequence< + com::sun::star::beans::PropertyValue> > aNumSettings; + + + public: + SvxNumValueSet2( Window* pParent, const ResId& rResId); + ~SvxNumValueSet2(); + + virtual void UserDraw( const UserDrawEvent& rUDEvt ); + + + void SetNumberingSettings( + const com::sun::star::uno::Sequence< + com::sun::star::uno::Sequence< + com::sun::star::beans::PropertyValue> >& aNum, + com::sun::star::uno::Reference<com::sun::star::text::XNumberingFormatter>& xFormatter, + const com::sun::star::lang::Locale& rLocale ); +}; + +class SVX_DLLPUBLIC SvxNumValueSet3 : public ValueSet +{ + public: + SvxNumValueSet3( Window* pParent, const ResId& rResId); + ~SvxNumValueSet3(); + + virtual void UserDraw( const UserDrawEvent& rUDEvt ); + +}; + +} } // end of namespace svx::sidebar + +#endif diff --git a/svx/inc/svx/svdedtv.hxx b/svx/inc/svx/svdedtv.hxx index 5ba95fcb25c9..879dcbd26ace 100644 --- a/svx/inc/svx/svdedtv.hxx +++ b/svx/inc/svx/svdedtv.hxx @@ -243,6 +243,7 @@ public: void SetMarkedObjRect(const Rectangle& rRect, sal_Bool bCopy=sal_False); void MoveMarkedObj(const Size& rSiz, bool bCopy=false); void ResizeMarkedObj(const Point& rRef, const Fraction& xFact, const Fraction& yFact, bool bCopy=false); + void ResizeMultMarkedObj(const Point& rRef, const Fraction& xFact, const Fraction& yFact, const bool bCopy, const bool bWdh, const bool bHgt); long GetMarkedObjRotate() const; void RotateMarkedObj(const Point& rRef, long nWink, bool bCopy=false); void MirrorMarkedObj(const Point& rRef1, const Point& rRef2, bool bCopy=false); diff --git a/svx/inc/svx/svdedxv.hxx b/svx/inc/svx/svdedxv.hxx index 6d8203b0d325..e7d6b7cbdb08 100644 --- a/svx/inc/svx/svdedxv.hxx +++ b/svx/inc/svx/svdedxv.hxx @@ -270,6 +270,9 @@ public: virtual void AddWindowToPaintView(OutputDevice* pNewWin); virtual void DeleteWindowFromPaintView(OutputDevice* pOldWin); + sal_uInt16 GetSelectionLevel() const; + + //************************************************************************ // Object-MacroModus (z.B. Rect als Button oder sowas): //************************************************************************ diff --git a/svx/inc/svx/svdmodel.hxx b/svx/inc/svx/svdmodel.hxx index 05814e23330e..5418a4527ab6 100644 --- a/svx/inc/svx/svdmodel.hxx +++ b/svx/inc/svx/svdmodel.hxx @@ -78,16 +78,11 @@ class SfxStyleSheet; class SfxUndoAction; class SfxUndoManager; class XBitmapList; -class XBitmapTable; -class XColorTable; +class XColorList; class XDashList; -class XDashTable; class XGradientList; -class XGradientTable; class XHatchList; -class XHatchTable; class XLineEndList; -class XLineEndTable; class SvxForbiddenCharactersTable; class SvNumberFormatter; class SotStorage; @@ -282,7 +277,7 @@ public: FASTBOOL mbInDestruction; // Zeiger auf Paletten, Listen und Tabellen - XColorTable* pColorTable; + XColorList* pColorTable; XDashList* pDashList; XLineEndList* pLineEndList; XHatchList* pHatchList; @@ -658,8 +653,8 @@ public: const Link& GetIOProgressHdl() const { return aIOProgressLink; } // Zugriffsmethoden fuer Paletten, Listen und Tabellen - void SetColorTable(XColorTable* pTable) ; - XColorTable* GetColorTable() const { return pColorTable; } + void SetColorTable(XColorList* pTable) ; + XColorList* GetColorTable() const { return pColorTable; } void SetDashList(XDashList* pList) ; XDashList* GetDashList() const { return pDashList; } void SetLineEndList(XLineEndList* pList) ; diff --git a/svx/inc/svx/svdobj.hxx b/svx/inc/svx/svdobj.hxx index dd18589bc9d9..14a9301148e1 100644 --- a/svx/inc/svx/svdobj.hxx +++ b/svx/inc/svx/svdobj.hxx @@ -40,6 +40,7 @@ #include <svx/sdrobjectuser.hxx> #include "svx/svxdllapi.h" #include "svx/shapeproperty.hxx" +#include <svl/poolitem.hxx> //************************************************************ // Vorausdeklarationen @@ -855,6 +856,9 @@ protected: void SetObjectItemSet(const SfxItemSet& rSet); const SfxPoolItem& GetObjectItem(const sal_uInt16 nWhich) const; + // get SfxMapUnit the object is using + SfxMapUnit GetObjectMapUnit() const; + public: // syntactical sugar for ItemSet accesses void SetMergedItemSetAndBroadcast(const SfxItemSet& rSet, sal_Bool bClearAllItems = sal_False); diff --git a/svx/inc/svx/svdogrp.hxx b/svx/inc/svx/svdogrp.hxx index b32c44096ef9..3b70be0218f9 100644 --- a/svx/inc/svx/svdogrp.hxx +++ b/svx/inc/svx/svdogrp.hxx @@ -48,9 +48,6 @@ protected: virtual sdr::properties::BaseProperties* CreateObjectSpecificProperties(); SdrObjList* pSub; // Subliste (Kinder) - long nDrehWink; - long nShearWink; - Point aRefPoint; // Referenzpunkt innerhalb der Objektgruppe FASTBOOL bRefPoint; // Ist ein RefPoint gesetzt? diff --git a/svx/inc/svx/svdstr.hrc b/svx/inc/svx/svdstr.hrc index 60225090efc4..a78cf826b4b9 100644 --- a/svx/inc/svx/svdstr.hrc +++ b/svx/inc/svx/svdstr.hrc @@ -785,8 +785,11 @@ #define SIP_SA_CROP_MARKERS (SIP_Begin + 276) #define SIP_SA_CROP_FINE_MARKERS (SIP_Begin + 277) #define SIP_SA_ACCESSIBILITY_CROP_MARKERS (SIP_Begin + 278) +#define IMG_DIACONTROL_NORMAL (SIP_Begin + 279) +#define IMG_DIACONTROL_H (SIP_Begin + 280) -#define SIP_End (SIP_SA_ACCESSIBILITY_CROP_MARKERS) + +#define SIP_End (IMG_DIACONTROL_H) #define SDR_ResourceEnd (SIP_End) diff --git a/svx/inc/svx/svxids.hrc b/svx/inc/svx/svxids.hrc index 3a31540fcfe2..a864e41381da 100755 --- a/svx/inc/svx/svxids.hrc +++ b/svx/inc/svx/svxids.hrc @@ -373,6 +373,8 @@ #define FN_NUM_BULLET_OFF (FN_EDIT + 37) /* Numerierung aus */ #define FN_NUM_BULLET_ON (FN_EDIT + 38) /* Numerierung mit Bullets an */ #define FN_NUM_NUMBERING_ON (FN_EDIT + 44) /* Numerierung an */ +#define FN_BUL_NUM_RULE_INDEX (FN_EDIT + 120) /* Achieving num rule index */ +#define FN_NUM_NUM_RULE_INDEX (FN_EDIT + 121) #define FN_INSERT (SID_SW_START + 300) #define FN_DELETE_BOOKMARK (FN_INSERT + 1) @@ -682,6 +684,9 @@ #define SID_TWAIN_TRANSFER ( SID_SVX_START + 332 ) #define SID_CONTOUR_DLG ( SID_SVX_START + 334 ) #define SID_CONTOUR_EXEC ( SID_SVX_START + 335 ) + +//#define SID_SIDEBAR ( SID_SVX_START + 336 ) -> sfxsids.hrc + #define SID_BORDER_OBJECT ( SID_SVX_START + 340 ) #define SID_BORDER_LEFTLINE ( SID_SVX_START + 341 ) #define SID_BORDER_RIGHTLINE ( SID_SVX_START + 342 ) @@ -748,6 +753,8 @@ #define SID_ATTR_3D_AMBIENTCOLOR ( SID_SVX_START + 411 ) #define SID_IMPORT_GRAPH_LINK ( SID_SVX_START + 412 ) +//#define SID_ATTR_PARA_REGISTER ( SID_SVX_START + 413 ) -> editids.hrc + //! moved to sfx2, still in use: //#define SID_HTML_MODE ( SID_SVX_START + 414 ) @@ -1257,8 +1264,26 @@ #define SID_TRANSLITERATE_TITLE_CASE (SID_SVX_START+1103) #define SID_TRANSLITERATE_TOGGLE_CASE (SID_SVX_START+1104) +// new slots for panels +#define SID_ATTR_FILL_TRANSPARENCE (SID_SVX_START+1105) +#define SID_ATTR_FILL_FLOATTRANSPARENCE (SID_SVX_START+1106) +#define SID_ATTR_LINE_TRANSPARENCE (SID_SVX_START+1107) +#define SID_FLIP_HORIZONTAL (SID_SVX_START+1108) +#define SID_FLIP_VERTICAL (SID_SVX_START+1109) +#define SID_ATTR_LINE_JOINT (SID_SVX_START+1110) +#define SID_ATTR_LINE_CAP (SID_SVX_START+1111) +#define SID_ATTR_TRANSFORM_MATRIX (SID_SVX_START+1112) + +#define SID_CELL_FORMAT_BORDER (SID_SVX_START+1113) +#define SID_CHAR_DLG_EFFECT (SID_SVX_START+1114) +#define SID_ATTR_PARA_LEFT (SID_SVX_START + 1115) +#define SID_ATTR_PARA_RIGHT (SID_SVX_START + 1116) + +#define FN_SVX_SET_NUMBER (SID_SVX_START + 1117) +#define FN_SVX_SET_BULLET (SID_SVX_START + 1118) + // IMPORTANT NOTE: adjust SID_SVX_FIRSTFREE, when adding new slot id -#define SID_SVX_FIRSTFREE (SID_TRANSLITERATE_TOGGLE_CASE + 1) +#define SID_SVX_FIRSTFREE (FN_SVX_SET_BULLET + 1) // -------------------------------------------------------------------------- // Overflow check for slot IDs diff --git a/svx/inc/svx/svxitems.hrc b/svx/inc/svx/svxitems.hrc index d6f035c62607..f001e4107c6e 100644 --- a/svx/inc/svx/svxitems.hrc +++ b/svx/inc/svx/svxitems.hrc @@ -70,6 +70,9 @@ #define RID_SVXITEMS_BRUSHSTYLE_75 (RID_SVXITEMS_START + 55) #define RID_SVXITEMS_BRUSHSTYLE_BITMAP (RID_SVXITEMS_START + 56) +// enum ColorName ----------------------------------------------------------- +#define RID_SVXITEMS_COLOR_WHITE (RID_SVXITEMS_START + 76) + // enum FontFamily ------------------------------------------------------- #define RID_SVXITEMS_FONTFAMILY_BEGIN (RID_SVXITEMS_START + 100) #define RID_SVXITEMS_FONTFAMILY_DONTKNOW (RID_SVXITEMS_START + 100) diff --git a/svx/inc/svx/xattr.hxx b/svx/inc/svx/xattr.hxx index 6dea0ad2cbcf..357a8c68c0e2 100644 --- a/svx/inc/svx/xattr.hxx +++ b/svx/inc/svx/xattr.hxx @@ -24,26 +24,12 @@ #define _XATTR_HXX // include --------------------------------------------------------------- - -#ifndef _XDEF_HXX -//#include <svx/xdef.hxx> -#endif -#ifndef _XENUM_HXX -//#include <svx/xenum.hxx> -#endif -#ifndef _XPOLY_HXX -//#include <svx/xpoly.hxx> -#endif -#ifndef _SVX_RECTENUM_HXX -//#include <svx/rectenum.hxx> -#endif - -class XColorTable; -class XDashTable; -class XLineEndTable; -class XHatchTable; -class XBitmapTable; -class XGradientTable; +class XColorList; +class XDashList; +class XLineEndList; +class XHatchList; +class XBitmapList; +class XGradientList; #include <svx/xit.hxx> #include <svx/xcolit.hxx> diff --git a/svx/inc/svx/xcolit.hxx b/svx/inc/svx/xcolit.hxx index 0c6f4b843e2e..82855e350d28 100644 --- a/svx/inc/svx/xcolit.hxx +++ b/svx/inc/svx/xcolit.hxx @@ -29,7 +29,7 @@ #include <svx/xit.hxx> -class XColorTable; +class XColorList; //----------------- // class XColorItem @@ -55,7 +55,7 @@ public: virtual SfxPoolItem* Create(SvStream& rIn, sal_uInt16 nVer) const; virtual SvStream& Store(SvStream& rOut, sal_uInt16 nItemVersion ) const; - const Color& GetColorValue(const XColorTable* pTable = 0) const; + const Color& GetColorValue(const XColorList* pTable = 0) const; void SetColorValue(const Color& rNew) { aColor = rNew; Detach(); } }; diff --git a/svx/inc/svx/xenum.hxx b/svx/inc/svx/xenum.hxx index f615cf78a1f9..d23302bd78d4 100644 --- a/svx/inc/svx/xenum.hxx +++ b/svx/inc/svx/xenum.hxx @@ -25,14 +25,6 @@ #define _XENUM_HXX enum XLineStyle { XLINE_NONE, XLINE_SOLID, XLINE_DASH }; -enum XLineJoint -{ - XLINEJOINT_NONE, // no rounding - XLINEJOINT_MIDDLE, // calc middle value between joints - XLINEJOINT_BEVEL, // join edges with line - XLINEJOINT_MITER, // extend till cut - XLINEJOINT_ROUND // create arc -}; enum XDashStyle { XDASH_RECT, XDASH_ROUND, XDASH_RECTRELATIVE, XDASH_ROUNDRELATIVE }; enum XFillStyle { XFILL_NONE, XFILL_SOLID, XFILL_GRADIENT, XFILL_HATCH, diff --git a/svx/inc/svx/xflgrit.hxx b/svx/inc/svx/xflgrit.hxx index a55862f94389..3f5dd828a671 100644 --- a/svx/inc/svx/xflgrit.hxx +++ b/svx/inc/svx/xflgrit.hxx @@ -59,7 +59,7 @@ public: SfxMapUnit eCoreMetric, SfxMapUnit ePresMetric, String &rText, const IntlWrapper * = 0 ) const; - const XGradient& GetGradientValue(const XGradientTable* pTable = 0) const; // GetValue -> GetGradientValue + const XGradient& GetGradientValue(const XGradientList* pTable = 0) const; // GetValue -> GetGradientValue void SetGradientValue(const XGradient& rNew) { aGradient = rNew; Detach(); } // SetValue -> SetGradientValue static sal_Bool CompareValueFunc( const NameOrIndex* p1, const NameOrIndex* p2 ); diff --git a/svx/inc/svx/xflhtit.hxx b/svx/inc/svx/xflhtit.hxx index ddf367059949..b8b3e0a05bc7 100644 --- a/svx/inc/svx/xflhtit.hxx +++ b/svx/inc/svx/xflhtit.hxx @@ -61,7 +61,7 @@ public: virtual FASTBOOL HasMetrics() const; virtual FASTBOOL ScaleMetrics(long nMul, long nDiv); - const XHatch& GetHatchValue(const XHatchTable* pTable = 0) const; // GetValue -> GetHatchValue + const XHatch& GetHatchValue(const XHatchList* pTable = 0) const; // GetValue -> GetHatchValue void SetHatchValue(const XHatch& rNew) { aHatch = rNew; Detach(); } // SetValue -> SetHatchValue static sal_Bool CompareValueFunc( const NameOrIndex* p1, const NameOrIndex* p2 ); diff --git a/svx/inc/svx/xit.hxx b/svx/inc/svx/xit.hxx index 67580505f21a..156c88258b72 100644 --- a/svx/inc/svx/xit.hxx +++ b/svx/inc/svx/xit.hxx @@ -30,12 +30,12 @@ /************************************************************************/ -class XColorTable; -class XDashTable; -class XLineEndTable; -class XHatchTable; -class XBitmapTable; -class XGradientTable; +class XColorList; +class XDashList; +class XLineEndList; +class XHatchList; +class XBitmapList; +class XGradientList; class SfxItemPool; class NameOrIndex; class XPropertyList; diff --git a/svx/inc/svx/xlineit.hxx b/svx/inc/svx/xlineit.hxx index ce58730b53ef..2491bed4aa15 100644 --- a/svx/inc/svx/xlineit.hxx +++ b/svx/inc/svx/xlineit.hxx @@ -32,7 +32,7 @@ #include <svl/eitem.hxx> class XDash; -class XDashTable; +class XDashList; class SvStream; #include <svx/xdash.hxx> diff --git a/svx/inc/svx/xlinjoit.hxx b/svx/inc/svx/xlinjoit.hxx index 7b45dbd0fd74..0a74c2740243 100644 --- a/svx/inc/svx/xlinjoit.hxx +++ b/svx/inc/svx/xlinjoit.hxx @@ -27,16 +27,17 @@ #include <svl/eitem.hxx> #include <svx/xenum.hxx> #include "svx/svxdllapi.h" +#include <com/sun/star/drawing/LineJoint.hpp> //--------------------- -// class LineStyleItem +// class XLineJointItem //--------------------- class SVX_DLLPUBLIC XLineJointItem : public SfxEnumItem { public: TYPEINFO(); - XLineJointItem( XLineJoint eLineJoint = XLINEJOINT_ROUND ); + XLineJointItem( com::sun::star::drawing::LineJoint eLineJoint = com::sun::star::drawing::LineJoint_ROUND ); XLineJointItem( SvStream& rIn ); virtual sal_uInt16 GetVersion( sal_uInt16 nFileFormatVersion ) const; @@ -49,8 +50,8 @@ public: SfxMapUnit eCoreMetric, SfxMapUnit ePresMetric, String &rText, const IntlWrapper * = 0 ) const; - virtual sal_uInt16 GetValueCount() const; - XLineJoint GetValue() const { return (XLineJoint) SfxEnumItem::GetValue(); } + virtual sal_uInt16 GetValueCount() const; + com::sun::star::drawing::LineJoint GetValue() const { return (com::sun::star::drawing::LineJoint) SfxEnumItem::GetValue(); } }; #endif // _SVX_XLINJOIT_HXX diff --git a/svx/inc/svx/xlncapit.hxx b/svx/inc/svx/xlncapit.hxx index 1949e9fda419..bccbcaf5e8b8 100644 --- a/svx/inc/svx/xlncapit.hxx +++ b/svx/inc/svx/xlncapit.hxx @@ -28,7 +28,7 @@ #include <com/sun/star/drawing/LineCap.hpp> //--------------------- -// class LineStyleItem +// class XLineCapItem //--------------------- class SVX_DLLPUBLIC XLineCapItem : public SfxEnumItem diff --git a/svx/inc/svx/xlndsit.hxx b/svx/inc/svx/xlndsit.hxx index c7d83fed2396..9ef7b5a38e99 100644 --- a/svx/inc/svx/xlndsit.hxx +++ b/svx/inc/svx/xlndsit.hxx @@ -65,7 +65,7 @@ public: virtual FASTBOOL HasMetrics() const; virtual FASTBOOL ScaleMetrics(long nMul, long nDiv); - const XDash& GetDashValue(const XDashTable* pTable = 0) const; // GetValue -> GetDashValue + const XDash& GetDashValue(const XDashList* pTable = 0) const; // GetValue -> GetDashValue void SetDashValue(const XDash& rNew) { aDash = rNew; Detach(); } // SetValue -> SetDashValue static sal_Bool CompareValueFunc( const NameOrIndex* p1, const NameOrIndex* p2 ); diff --git a/svx/inc/svx/xlnedit.hxx b/svx/inc/svx/xlnedit.hxx index 7b50ce8446d7..f0a62713cd31 100644 --- a/svx/inc/svx/xlnedit.hxx +++ b/svx/inc/svx/xlnedit.hxx @@ -59,7 +59,7 @@ public: SfxMapUnit ePresMetric, String &rText, const IntlWrapper * = 0 ) const; - basegfx::B2DPolyPolygon GetLineEndValue(const XLineEndTable* pTable = 0) const; + basegfx::B2DPolyPolygon GetLineEndValue(const XLineEndList* pTable = 0) const; void SetLineEndValue(const basegfx::B2DPolyPolygon& rPolyPolygon) { maPolyPolygon = rPolyPolygon; Detach(); } XLineEndItem* checkForUniqueItem( SdrModel* pModel ) const; diff --git a/svx/inc/svx/xlnstit.hxx b/svx/inc/svx/xlnstit.hxx index 270b0a509c44..3ab186106fa5 100644 --- a/svx/inc/svx/xlnstit.hxx +++ b/svx/inc/svx/xlnstit.hxx @@ -59,7 +59,7 @@ public: SfxMapUnit ePresMetric, String &rText, const IntlWrapper * = 0 ) const; - basegfx::B2DPolyPolygon GetLineStartValue(const XLineEndTable* pTable = 0) const; + basegfx::B2DPolyPolygon GetLineStartValue(const XLineEndList* pTable = 0) const; void SetLineStartValue(const basegfx::B2DPolyPolygon& rPolyPolygon) { maPolyPolygon = rPolyPolygon; Detach(); } XLineStartItem* checkForUniqueItem( SdrModel* pModel ) const; diff --git a/svx/inc/svx/xtable.hxx b/svx/inc/svx/xtable.hxx index 5a8a7060eed8..fc6d826b9182 100644 --- a/svx/inc/svx/xtable.hxx +++ b/svx/inc/svx/xtable.hxx @@ -33,19 +33,16 @@ #include <tools/color.hxx> #include <tools/string.hxx> #include <tools/table.hxx> -#include "svx/svxdllapi.h" +#include <svx/svxdllapi.h> #include <basegfx/polygon/b2dpolypolygon.hxx> #include <svtools/grfmgr.hxx> +#include <svx/XPropertyEntry.hxx> class Color; class Bitmap; class VirtualDevice; class XOutdevItemPool; -// Breite und Hoehe der LB-Bitmaps -#define BITMAP_WIDTH 32 -#define BITMAP_HEIGHT 12 - // Standard-Vergleichsstring extern sal_Unicode __FAR_DATA pszStandard[]; // "standard" @@ -53,24 +50,6 @@ extern sal_Unicode __FAR_DATA pszStandard[]; // "standard" // enum COL_NAME nicht verglichen werden kann. SVX_DLLPUBLIC Color RGB_Color( ColorData nColorName ); -// --------------------- -// class XPropertyEntry -// --------------------- - -class XPropertyEntry -{ -protected: - String aName; - - XPropertyEntry(const String& rName) : aName(rName) {} - XPropertyEntry(const XPropertyEntry& rOther): aName(rOther.aName) {} -public: - - virtual ~XPropertyEntry() {} - void SetName(const String& rName) { aName = rName; } - String& GetName() { return aName; } -}; - // ------------------ // class XColorEntry // ------------------ @@ -206,59 +185,6 @@ public: } }; -// --------------------- -// class XPropertyTable -// --------------------- - -class SVX_DLLPUBLIC XPropertyTable -{ -protected: - String aName; // nicht persistent ! - String aPath; - XOutdevItemPool* pXPool; - - Table aTable; - Table* pBmpTable; - - sal_Bool bTableDirty; - sal_Bool bBitmapsDirty; - sal_Bool bOwnPool; - - XPropertyTable( const String& rPath, - XOutdevItemPool* pXPool = NULL, - sal_uInt16 nInitSize = 16, - sal_uInt16 nReSize = 16 ); - XPropertyTable( SvStream& rIn ); - void Clear(); - -public: - virtual ~XPropertyTable(); - - long Count() const; - - sal_Bool Insert(long nIndex, XPropertyEntry* pEntry); - XPropertyEntry* Replace(long nIndex, XPropertyEntry* pEntry); - XPropertyEntry* Remove(long nIndex, sal_uInt16 nDummy); - XPropertyEntry* Get( long nIndex, sal_uInt16 nDummy ) const; - - long Get(const String& rName); - Bitmap* GetBitmap( long nIndex ) const; - - const String& GetName() const { return aName; } - void SetName( const String& rString ); - const String& GetPath() const { return aPath; } - void SetPath( const String& rString ) { aPath = rString; } - sal_Bool IsDirty() const { return bTableDirty && bBitmapsDirty; } - void SetDirty( sal_Bool bDirty = sal_True ) - { bTableDirty = bDirty; bBitmapsDirty = bDirty; } - - virtual sal_Bool Load() = 0; - virtual sal_Bool Save() = 0; - virtual sal_Bool Create() = 0; - virtual sal_Bool CreateBitmapsForUI() = 0; - virtual Bitmap* CreateBitmapForUI( long nIndex, sal_Bool bDelete = sal_True ) = 0; -}; - // -------------------- // class XPropertyList // -------------------- @@ -266,23 +192,18 @@ public: class SVX_DLLPUBLIC XPropertyList { protected: - String aName; // nicht persistent ! - String aPath; - XOutdevItemPool* pXPool; - - List aList; - List* pBmpList; - - sal_Bool bListDirty; - sal_Bool bBitmapsDirty; - sal_Bool bOwnPool; - - XPropertyList( const String& rPath, - XOutdevItemPool* pXPool = NULL, - sal_uInt16 nInitSize = 16, - sal_uInt16 nReSize = 16 ); - XPropertyList( SvStream& rIn ); + String maName; // nicht persistent ! + String maPath; + XOutdevItemPool* mpXPool; + + List maList; + + /// bitfield + bool mbListDirty : 1; + + XPropertyList( const String& rPath, XOutdevItemPool* pXPool = 0 ); void Clear(); + virtual Bitmap CreateBitmapForUI( long nIndex ) = 0; public: virtual ~XPropertyList(); @@ -295,63 +216,35 @@ public: XPropertyEntry* Get( long nIndex, sal_uInt16 nDummy ) const; long Get(const String& rName); - Bitmap* GetBitmap( long nIndex ) const; + Bitmap GetUiBitmap( long nIndex ) const; - const String& GetName() const { return aName; } + const String& GetName() const { return maName; } void SetName( const String& rString ); - const String& GetPath() const { return aPath; } - void SetPath( const String& rString ) { aPath = rString; } - sal_Bool IsDirty() const { return bListDirty && bBitmapsDirty; } - void SetDirty( sal_Bool bDirty = sal_True ) - { bListDirty = bDirty; bBitmapsDirty = bDirty; } + const String& GetPath() const { return maPath; } + void SetPath( const String& rString ) { maPath = rString; } + bool IsDirty() const { return mbListDirty; } + void SetDirty( bool bDirty = true ) { mbListDirty = bDirty; } virtual sal_Bool Load() = 0; virtual sal_Bool Save() = 0; virtual sal_Bool Create() = 0; - virtual sal_Bool CreateBitmapsForUI() = 0; - virtual Bitmap* CreateBitmapForUI( long nIndex, sal_Bool bDelete = sal_True ) = 0; -}; - -// ------------------ -// class XColorTable -// ------------------ - -class SVX_DLLPUBLIC XColorTable : public XPropertyTable -{ -public: - XColorTable( const String& rPath, - XOutdevItemPool* pXPool = NULL, - sal_uInt16 nInitSize = 16, - sal_uInt16 nReSize = 16 ); - virtual ~XColorTable(); - - using XPropertyTable::Replace; - XColorEntry* Replace(long nIndex, XColorEntry* pEntry ); - using XPropertyTable::Remove; - XColorEntry* Remove(long nIndex); - using XPropertyTable::Get; - XColorEntry* GetColor(long nIndex) const; - virtual sal_Bool Load(); - virtual sal_Bool Save(); - virtual sal_Bool Create(); - virtual sal_Bool CreateBitmapsForUI(); - virtual Bitmap* CreateBitmapForUI( long nIndex, sal_Bool bDelete = sal_True ); - - static XColorTable* GetStdColorTable(); + sal_uInt32 getUiBitmapWidth() const; + sal_uInt32 getUiBitmapHeight() const; + sal_uInt32 getUiBitmapLineWidth() const; }; // ------------------- // class XColorList // ------------------- -class XColorList : public XPropertyList +class SVX_DLLPUBLIC XColorList : public XPropertyList { +protected: + virtual Bitmap CreateBitmapForUI( long nIndex ); + public: - XColorList( const String& rPath, - XOutdevItemPool* pXPool = NULL, - sal_uInt16 nInitSize = 16, - sal_uInt16 nReSize = 16 ); + XColorList( const String& rPath, XOutdevItemPool* pXPool = 0 ); virtual ~XColorList(); using XPropertyList::Replace; @@ -364,35 +257,8 @@ public: virtual sal_Bool Load(); virtual sal_Bool Save(); virtual sal_Bool Create(); - virtual sal_Bool CreateBitmapsForUI(); - virtual Bitmap* CreateBitmapForUI( long nIndex, sal_Bool bDelete = sal_True ); -}; -// -------------------- -// class XLineEndTable -// -------------------- - -class XLineEndTable : public XPropertyTable -{ -public: - XLineEndTable( const String& rPath, - XOutdevItemPool* pXPool = NULL, - sal_uInt16 nInitSize = 16, - sal_uInt16 nReSize = 16 ); - virtual ~XLineEndTable(); - - using XPropertyTable::Replace; - XLineEndEntry* Replace(long nIndex, XLineEndEntry* pEntry ); - using XPropertyTable::Remove; - XLineEndEntry* Remove(long nIndex); - using XPropertyTable::Get; - XLineEndEntry* GetLineEnd(long nIndex) const; - - virtual sal_Bool Load(); - virtual sal_Bool Save(); - virtual sal_Bool Create(); - virtual sal_Bool CreateBitmapsForUI(); - virtual Bitmap* CreateBitmapForUI( long nIndex, sal_Bool bDelete = sal_True ); + static XColorList* GetStdColorList(); }; // ------------------- @@ -408,8 +274,11 @@ private: void impCreate(); void impDestroy(); +protected: + virtual Bitmap CreateBitmapForUI(long nIndex); + public: - XLineEndList(const String& rPath, XOutdevItemPool* pXPool = 0, sal_uInt16 nInitSize = 16, sal_uInt16 nReSize = 16); + XLineEndList(const String& rPath, XOutdevItemPool* pXPool = 0); virtual ~XLineEndList(); using XPropertyList::Replace; @@ -422,35 +291,6 @@ public: virtual sal_Bool Load(); virtual sal_Bool Save(); virtual sal_Bool Create(); - virtual sal_Bool CreateBitmapsForUI(); - virtual Bitmap* CreateBitmapForUI(long nIndex, sal_Bool bDelete = sal_True); -}; - -// -------------------- -// class XDashTable -// -------------------- - -class XDashTable : public XPropertyTable -{ -public: - XDashTable( const String& rPath, - XOutdevItemPool* pXPool = NULL, - sal_uInt16 nInitSize = 16, - sal_uInt16 nReSize = 16 ); - virtual ~XDashTable(); - - using XPropertyTable::Replace; - XDashEntry* Replace(long nIndex, XDashEntry* pEntry ); - using XPropertyTable::Remove; - XDashEntry* Remove(long nIndex); - using XPropertyTable::Get; - XDashEntry* GetDash(long nIndex) const; - - virtual sal_Bool Load(); - virtual sal_Bool Save(); - virtual sal_Bool Create(); - virtual sal_Bool CreateBitmapsForUI(); - virtual Bitmap* CreateBitmapForUI( long nIndex, sal_Bool bDelete = sal_True ); }; // ------------------- @@ -462,12 +302,19 @@ class SVX_DLLPUBLIC XDashList : public XPropertyList { private: impXDashList* mpData; + Bitmap maBitmapSolidLine; + String maStringSolidLine; + String maStringNoLine; void impCreate(); void impDestroy(); +protected: + Bitmap ImpCreateBitmapForXDash(const XDash* pDash); + virtual Bitmap CreateBitmapForUI(long nIndex); + public: - XDashList(const String& rPath, XOutdevItemPool* pXPool = 0, sal_uInt16 nInitSize = 16, sal_uInt16 nReSize = 16); + XDashList(const String& rPath, XOutdevItemPool* pXPool = 0); virtual ~XDashList(); using XPropertyList::Replace; @@ -480,35 +327,16 @@ public: virtual sal_Bool Load(); virtual sal_Bool Save(); virtual sal_Bool Create(); - virtual sal_Bool CreateBitmapsForUI(); - virtual Bitmap* CreateBitmapForUI(long nIndex, sal_Bool bDelete = sal_True); -}; - -// -------------------- -// class XHatchTable -// -------------------- -class XHatchTable : public XPropertyTable -{ -public: - XHatchTable( const String& rPath, - XOutdevItemPool* pXPool = NULL, - sal_uInt16 nInitSize = 16, - sal_uInt16 nReSize = 16 ); - virtual ~XHatchTable(); - - using XPropertyTable::Replace; - XHatchEntry* Replace(long nIndex, XHatchEntry* pEntry ); - using XPropertyTable::Remove; - XHatchEntry* Remove(long nIndex); - using XPropertyTable::Get; - XHatchEntry* GetHatch(long nIndex) const; + // Special call to get a bitmap for the solid line representation. It + // creates a bitmap fitting in size and style to the ones you get by + // using GetUiBitmap for existing entries. + Bitmap GetBitmapForUISolidLine() const; - virtual sal_Bool Load(); - virtual sal_Bool Save(); - virtual sal_Bool Create(); - virtual sal_Bool CreateBitmapsForUI(); - virtual Bitmap* CreateBitmapForUI( long nIndex, sal_Bool bDelete = sal_True ); + // Special calls to get the translated strings for the UI entry for no + // line style (XLINE_NONE) and solid line style (XLINE_SOLID) for dialogs + String GetStringForUiSolidLine() const; + String GetStringForUiNoLine() const; }; // ------------------- @@ -524,8 +352,11 @@ private: void impCreate(); void impDestroy(); +protected: + virtual Bitmap CreateBitmapForUI(long nIndex); + public: - XHatchList(const String& rPath, XOutdevItemPool* pXPool = 0, sal_uInt16 nInitSize = 16, sal_uInt16 nReSize = 16); + XHatchList(const String& rPath, XOutdevItemPool* pXPool = 0); ~XHatchList(); using XPropertyList::Replace; @@ -538,35 +369,6 @@ public: virtual sal_Bool Load(); virtual sal_Bool Save(); virtual sal_Bool Create(); - virtual sal_Bool CreateBitmapsForUI(); - virtual Bitmap* CreateBitmapForUI(long nIndex, sal_Bool bDelete = sal_True); -}; - -// --------------------- -// class XGradientTable -// --------------------- - -class XGradientTable : public XPropertyTable -{ -public: - XGradientTable( const String& rPath, - XOutdevItemPool* pXPool = NULL, - sal_uInt16 nInitSize = 16, - sal_uInt16 nReSize = 16 ); - virtual ~XGradientTable(); - - using XPropertyTable::Replace; - XGradientEntry* Replace(long nIndex, XGradientEntry* pEntry ); - using XPropertyTable::Remove; - XGradientEntry* Remove(long nIndex); - using XPropertyTable::Get; - XGradientEntry* GetGradient(long nIndex) const; - - virtual sal_Bool Load(); - virtual sal_Bool Save(); - virtual sal_Bool Create(); - virtual sal_Bool CreateBitmapsForUI(); - virtual Bitmap* CreateBitmapForUI( long nIndex, sal_Bool bDelete = sal_True ); }; // ------------------- @@ -582,8 +384,11 @@ private: void impCreate(); void impDestroy(); +protected: + virtual Bitmap CreateBitmapForUI(long nIndex); + public: - XGradientList(const String& rPath, XOutdevItemPool* pXPool = 0, sal_uInt16 nInitSize = 16, sal_uInt16 nReSize = 16); + XGradientList(const String& rPath, XOutdevItemPool* pXPool = 0); virtual ~XGradientList(); using XPropertyList::Replace; @@ -596,35 +401,6 @@ public: virtual sal_Bool Load(); virtual sal_Bool Save(); virtual sal_Bool Create(); - virtual sal_Bool CreateBitmapsForUI(); - virtual Bitmap* CreateBitmapForUI(long nIndex, sal_Bool bDelete = sal_True); -}; - -// --------------------- -// class XBitmapTable -// --------------------- - -class XBitmapTable : public XPropertyTable -{ -public: - XBitmapTable( const String& rPath, - XOutdevItemPool* pXPool = NULL, - sal_uInt16 nInitSize = 16, - sal_uInt16 nReSize = 16 ); - virtual ~XBitmapTable(); - - using XPropertyTable::Replace; - XBitmapEntry* Replace(long nIndex, XBitmapEntry* pEntry ); - using XPropertyTable::Remove; - XBitmapEntry* Remove(long nIndex); - using XPropertyTable::Get; - XBitmapEntry* GetBitmap(long nIndex) const; - - virtual sal_Bool Load(); - virtual sal_Bool Save(); - virtual sal_Bool Create(); - virtual sal_Bool CreateBitmapsForUI(); - virtual Bitmap* CreateBitmapForUI( long nIndex, sal_Bool bDelete = sal_True ); }; // ------------------- @@ -633,11 +409,11 @@ public: class SVX_DLLPUBLIC XBitmapList : public XPropertyList { +protected: + virtual Bitmap CreateBitmapForUI( long nIndex ); + public: - XBitmapList( const String& rPath, - XOutdevItemPool* pXPool = NULL, - sal_uInt16 nInitSize = 16, - sal_uInt16 nReSize = 16 ); + XBitmapList( const String& rPath, XOutdevItemPool* pXPool = 0); virtual ~XBitmapList(); using XPropertyList::Replace; @@ -650,8 +426,8 @@ public: virtual sal_Bool Load(); virtual sal_Bool Save(); virtual sal_Bool Create(); - virtual sal_Bool CreateBitmapsForUI(); - virtual Bitmap* CreateBitmapForUI( long nIndex, sal_Bool bDelete = sal_True ); }; #endif // _XTABLE_HXX + +// eof |