bump product version to 4.1.6.2
[LibreOffice.git] / svx / source / sidebar / area / AreaPropertyPanel.cxx
blobdf87602696c3feee8a8c289a894cf85c71922d88
1 /*
2 * This file is part of the LibreOffice project.
4 * This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this
6 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 * This file incorporates work covered by the following license notice:
10 * Licensed to the Apache Software Foundation (ASF) under one or more
11 * contributor license agreements. See the NOTICE file distributed
12 * with this work for additional information regarding copyright
13 * ownership. The ASF licenses this file to you under the Apache
14 * License, Version 2.0 (the "License"); you may not use this file
15 * except in compliance with the License. You may obtain a copy of
16 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 #include "svx/sidebar/PopupContainer.hxx"
19 #include "AreaTransparencyGradientControl.hxx"
21 #include <sfx2/sidebar/ResourceDefinitions.hrc>
22 #include <sfx2/sidebar/Theme.hxx>
23 #include <sfx2/sidebar/ControlFactory.hxx>
24 #include <AreaPropertyPanel.hxx>
25 #include <AreaPropertyPanel.hrc>
26 #include <svx/dialogs.hrc>
27 #include <svx/dialmgr.hxx>
28 #include <sfx2/objsh.hxx>
29 #include <svx/xfltrit.hxx>
30 #include <svx/xflftrit.hxx>
31 #include <svx/xtable.hxx>
32 #include <sfx2/dispatch.hxx>
33 #include <sfx2/bindings.hxx>
34 #include <helpid.hrc>
35 #include <svtools/valueset.hxx>
36 #include <unotools/pathoptions.hxx>
37 #include <svx/svxitems.hrc>
38 #include <vcl/toolbox.hxx>
39 #include <svtools/toolbarmenu.hxx>
40 #include <svx/sidebar/ColorControl.hxx>
42 #include <boost/bind.hpp>
44 using namespace css;
45 using namespace cssu;
46 using ::sfx2::sidebar::Theme;
48 #define A2S(pString) (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(pString)))
53 namespace svx { namespace sidebar {
55 const sal_Int32 AreaPropertyPanel::DEFAULT_CENTERX = 50;
56 const sal_Int32 AreaPropertyPanel::DEFAULT_CENTERY = 50;
57 const sal_Int32 AreaPropertyPanel::DEFAULT_ANGLE = 0;
58 const sal_Int32 AreaPropertyPanel::DEFAULT_STARTVALUE = 0;
59 const sal_Int32 AreaPropertyPanel::DEFAULT_ENDVALUE = 16777215;
60 const sal_Int32 AreaPropertyPanel::DEFAULT_BORDER = 0;
63 AreaPropertyPanel::AreaPropertyPanel(
64 Window* pParent,
65 const cssu::Reference<css::frame::XFrame>& rxFrame,
66 SfxBindings* pBindings)
67 : Control(pParent, SVX_RES(RID_SIDEBAR_AREA_PANEL)),
68 meLastXFS(-1),
69 maLastColor(Color(COL_DEFAULT_SHAPE_FILLING)),
70 mnLastPosGradient(0),
71 mnLastPosHatch(0),
72 mnLastPosBitmap(0),
73 mnLastTransSolid(50),
74 maGradientLinear(),
75 maGradientAxial(),
76 maGradientRadial(),
77 maGradientElliptical(),
78 maGradientSquare(),
79 maGradientRect(),
80 mpColorTextFT(new FixedText(this, SVX_RES(FT_COLOR_LIST))),
81 mpLbFillType(new SvxFillTypeBox(this)),
82 mpLbFillAttr(new SvxFillAttrBox(this)),
83 mpToolBoxColorBackground(sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this)),
84 mpToolBoxColor(sfx2::sidebar::ControlFactory::CreateToolBox(mpToolBoxColorBackground.get(), SVX_RES(TB_COLOR))),
85 mpTrspTextFT(new FixedText(this, SVX_RES(FL_TRSP_TEXT))),
86 mpLBTransType(new ListBox(this, SVX_RES(LB_TRGR_TYPES))),
87 mpMTRTransparent(new MetricField(this, SVX_RES(MTR_TRANSPARENT))),
88 mpBTNGradientBackground(sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this)),
89 mpBTNGradient(sfx2::sidebar::ControlFactory::CreateToolBox(mpBTNGradientBackground.get(), SVX_RES(BTN_GRADIENT))),
90 mpColorUpdater(new ::svx::ToolboxButtonColorUpdater(SID_ATTR_FILL_COLOR, TBI_COLOR, mpToolBoxColor.get(), TBX_UPDATER_MODE_CHAR_COLOR_NEW)),
91 mpStyleItem(),
92 mpColorItem(),
93 mpFillGradientItem(),
94 mpHatchItem(),
95 mpBitmapItem(),
96 maStyleControl(SID_ATTR_FILL_STYLE, *pBindings, *this),
97 maColorControl(SID_ATTR_FILL_COLOR, *pBindings, *this),
98 maGradientControl(SID_ATTR_FILL_GRADIENT, *pBindings, *this),
99 maHatchControl(SID_ATTR_FILL_HATCH, *pBindings, *this),
100 maBitmapControl(SID_ATTR_FILL_BITMAP, *pBindings, *this),
101 maColorTableControl(SID_COLOR_TABLE, *pBindings, *this),
102 maGradientListControl(SID_GRADIENT_LIST, *pBindings, *this),
103 maHatchListControl(SID_HATCH_LIST, *pBindings, *this),
104 maBitmapListControl(SID_BITMAP_LIST, *pBindings, *this),
105 maFillTransparenceController(SID_ATTR_FILL_TRANSPARENCE, *pBindings, *this),
106 maFillFloatTransparenceController(SID_ATTR_FILL_FLOATTRANSPARENCE, *pBindings, *this),
107 maImgAxial(SVX_RES(IMG_AXIAL)),
108 maImgElli(SVX_RES(IMG_ELLI)),
109 maImgQuad(SVX_RES(IMG_QUAD)),
110 maImgRadial(SVX_RES(IMG_RADIAL)),
111 maImgSquare(SVX_RES(IMG_SQUARE)),
112 maImgLinear(SVX_RES(IMG_LINEAR)),
113 maImgColor(SVX_RES(IMG_COLOR)),
114 msHelpFillType(SVX_RES(STR_HELP_TYPE)),
115 msHelpFillAttr(SVX_RES(STR_HELP_ATTR)),
116 maTrGrPopup(this, ::boost::bind(&AreaPropertyPanel::CreateTransparencyGradientControl, this, _1)),
117 maColorPopup(this, ::boost::bind(&AreaPropertyPanel::CreateColorPopupControl, this, _1)),
118 mpFloatTransparenceItem(),
119 mpTransparanceItem(),
120 mxFrame(rxFrame),
121 mpBindings(pBindings),
122 mbColorAvail(true)
124 Initialize();
125 FreeResource();
130 AreaPropertyPanel::~AreaPropertyPanel()
132 // Destroy the toolboxes, then their background windows.
133 mpToolBoxColor.reset();
134 mpBTNGradient.reset();
135 mpToolBoxColorBackground.reset();
136 mpBTNGradientBackground.reset();
141 void AreaPropertyPanel::Initialize()
143 mpColorTextFT->SetBackground(Wallpaper());
144 mpTrspTextFT->SetBackground(Wallpaper());
146 maGradientLinear.SetXOffset(DEFAULT_CENTERX);
147 maGradientLinear.SetYOffset(DEFAULT_CENTERY);
148 maGradientLinear.SetAngle(DEFAULT_ANGLE);
149 maGradientLinear.SetStartColor(Color(DEFAULT_STARTVALUE));
150 maGradientLinear.SetEndColor(Color(DEFAULT_ENDVALUE));
151 maGradientLinear.SetBorder(DEFAULT_BORDER);
152 maGradientLinear.SetGradientStyle(XGRAD_LINEAR);
154 maGradientAxial = maGradientLinear;
155 maGradientAxial.SetGradientStyle(XGRAD_AXIAL);
157 maGradientRadial = maGradientLinear;
158 maGradientRadial.SetGradientStyle(XGRAD_RADIAL);
160 maGradientElliptical = maGradientLinear;
161 maGradientElliptical.SetGradientStyle(XGRAD_ELLIPTICAL);
163 maGradientSquare = maGradientLinear;
164 maGradientSquare.SetGradientStyle(XGRAD_SQUARE);
166 maGradientRect = maGradientLinear;
167 maGradientRect.SetGradientStyle(XGRAD_RECT);
169 Size aLogicalFillSize(MBOX_WIDTH,LISTBOX_HEIGHT);
170 Size aLogicalAttrSize(MBOX_WIDTH + 1,LISTBOX_HEIGHT);
172 Point aPoint(SECTIONPAGE_MARGIN_HORIZONTAL,SECTIONPAGE_MARGIN_VERTICAL_TOP + FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL);
173 Point aPoint_Picker(SECTIONPAGE_MARGIN_HORIZONTAL + MBOX_WIDTH + CONTROL_SPACING_HORIZONTAL,SECTIONPAGE_MARGIN_VERTICAL_TOP + FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL);
175 Size aTypeSize(LogicToPixel(aLogicalFillSize, MAP_APPFONT));
176 Size aAttrSize(LogicToPixel(aLogicalAttrSize, MAP_APPFONT));
178 Point aTypePoint(LogicToPixel(aPoint, MAP_APPFONT));
179 Point aAttrPoint(LogicToPixel(aPoint_Picker, MAP_APPFONT));
181 mpLbFillType->SetPosSizePixel(aTypePoint,aTypeSize);
182 mpLbFillAttr->SetPosSizePixel(aAttrPoint,aAttrSize);
184 mpLbFillType->SetHelpId(HID_PPROPERTYPANEL_AREA_LB_FILL_TYPES);
185 mpLbFillAttr->SetHelpId(HID_PPROPERTYPANEL_AREA_LB_FILL_ATTR);
187 mpLbFillType->SetQuickHelpText(msHelpFillType);
188 mpLbFillAttr->SetQuickHelpText(msHelpFillAttr);
190 mpLbFillType->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Fill"))); //wj acc
191 mpLbFillAttr->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Fill"))); //wj acc
193 Link aLink = LINK( this, AreaPropertyPanel, SelectFillTypeHdl );
194 mpLbFillType->SetSelectHdl( aLink );
196 aLink = LINK( this, AreaPropertyPanel, SelectFillAttrHdl );
197 mpLbFillAttr->SetSelectHdl( aLink );
199 //add for new color picker
200 mpLbFillAttr->Hide();
201 mpToolBoxColor->SetItemImage(TBI_COLOR, maImgColor);
202 Size aTbxSize( mpToolBoxColor->CalcWindowSizePixel() );
203 mpToolBoxColor->SetOutputSizePixel( aTbxSize );
204 mpToolBoxColor->SetItemBits( TBI_COLOR, mpToolBoxColor->GetItemBits( TBI_COLOR ) | TIB_DROPDOWNONLY );
205 mpToolBoxColor->SetBackground(Wallpaper());
206 mpToolBoxColor->SetPaintTransparent(true);
207 mpToolBoxColor->SetQuickHelpText(TBI_COLOR, String(SVX_RES(STR_HELP_COLOR))); //wj acc
208 //mpToolBoxColor->SetItemText(TBI_COLOR, msHelpFillAttr);
210 long aHeightLBStyle = mpLbFillType->GetSizePixel().getHeight();
211 long aLBPosY = mpLbFillType->GetPosPixel().getY();
212 long aHeightTBAttr = mpToolBoxColor->GetSizePixel().getHeight();
213 Point aPointTBAttr = mpToolBoxColor->GetPosPixel();
214 aPointTBAttr.setY( aLBPosY + aHeightLBStyle / 2 - aHeightTBAttr / 2);
215 mpToolBoxColor->SetPosPixel(aPointTBAttr);
217 aLink = LINK(this, AreaPropertyPanel, ToolBoxColorDropHdl);
218 mpToolBoxColor->SetDropdownClickHdl ( aLink );
219 mpToolBoxColor->SetSelectHdl ( aLink );
221 //add end
222 mpLBTransType->SetSelectHdl(LINK(this, AreaPropertyPanel, ChangeTrgrTypeHdl_Impl));
223 mpLBTransType->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Transparency"))); //wj acc
225 mpMTRTransparent->SetValue( 50 );
226 mpMTRTransparent->SetModifyHdl(LINK(this, AreaPropertyPanel, ModifyTransparentHdl_Impl));
227 mpMTRTransparent->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Transparency"))); //wj acc
229 mpBTNGradient->SetItemBits( TBI_BTX_GRADIENT, mpBTNGradient->GetItemBits( TBI_BTX_GRADIENT ) | TIB_DROPDOWNONLY );
230 aLink = LINK( this, AreaPropertyPanel, ClickTrGrHdl_Impl );
231 mpBTNGradient->SetDropdownClickHdl( aLink );
232 mpBTNGradient->SetSelectHdl( aLink );
233 aTbxSize = mpBTNGradient->CalcWindowSizePixel();
234 mpBTNGradient->SetOutputSizePixel( aTbxSize );
235 mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,maImgLinear);
236 mpBTNGradient->SetQuickHelpText(TBI_BTX_GRADIENT, String(SVX_RES(STR_HELP_GRADIENT))); //wj acc
237 mpBTNGradient->Hide();
239 long aHeightLBTrans = mpLBTransType->GetSizePixel().getHeight();
240 Point aPointLB = mpLBTransType->GetPosPixel();
241 long aPosY = aPointLB.getY();
243 Point aPointMetric = mpMTRTransparent->GetPosPixel();
244 Point aPointTB = mpMTRTransparent->GetPosPixel();
245 long aHeightMetric = mpMTRTransparent->GetSizePixel().getHeight();
246 long aHeightTool = mpBTNGradient->GetSizePixel().getHeight();
247 aPointMetric.setY(aPosY+aHeightLBTrans/2-aHeightMetric/2);
248 aPointTB.setY(aPosY+aHeightLBTrans/2-aHeightTool/2);
249 aPointTB.setX(aPointTB.getX()+3);
250 mpMTRTransparent->SetPosPixel(aPointMetric);
251 mpBTNGradient->SetPosPixel(aPointTB);
253 mpLbFillType->SetAccessibleRelationLabeledBy(mpColorTextFT.get());
254 mpLbFillAttr->SetAccessibleRelationLabeledBy(mpLbFillAttr.get());
255 mpToolBoxColor->SetAccessibleRelationLabeledBy(mpToolBoxColor.get());
256 mpLBTransType->SetAccessibleRelationLabeledBy(mpTrspTextFT.get());
257 mpMTRTransparent->SetAccessibleRelationLabeledBy(mpMTRTransparent.get());
258 mpBTNGradient->SetAccessibleRelationLabeledBy(mpBTNGradient.get());
260 SetupIcons();
265 IMPL_LINK( AreaPropertyPanel, SelectFillTypeHdl, ListBox *, pToolBox )
267 const XFillStyle eXFS = (XFillStyle)mpLbFillType->GetSelectEntryPos();
269 if((XFillStyle)meLastXFS != eXFS)
271 mpLbFillAttr->Clear();
272 SfxObjectShell* pSh = SfxObjectShell::Current();
273 const XFillStyleItem aXFillStyleItem(eXFS);
274 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_STYLE, SFX_CALLMODE_RECORD, &aXFillStyleItem, 0L);
276 switch( eXFS )
278 case XFILL_NONE:
280 mpLbFillAttr->Show();
281 mpToolBoxColor->Hide();
282 mpLbFillType->Selected();
283 mpLbFillAttr->Disable();
284 break;
286 case XFILL_SOLID:
288 mpLbFillAttr->Hide();
289 mpToolBoxColor->Show();
290 const String aTmpStr;
291 const Color aColor = maLastColor;
292 const XFillColorItem aXFillColorItem( aTmpStr, aColor );
293 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_COLOR, SFX_CALLMODE_RECORD, &aXFillColorItem, 0L);
294 break;
296 case XFILL_GRADIENT:
298 mpLbFillAttr->Show();
299 mpToolBoxColor->Hide();
301 if(pSh && pSh->GetItem(SID_GRADIENT_LIST))
303 if(!mpLbFillAttr->GetEntryCount())
305 const SvxGradientListItem aItem(*(const SvxGradientListItem*)(pSh->GetItem(SID_GRADIENT_LIST)));
306 mpLbFillAttr->Enable();
307 mpLbFillAttr->Clear();
308 mpLbFillAttr->Fill(aItem.GetGradientList());
311 mpLbFillAttr->AdaptDropDownLineCountToMaximum();
313 if(LISTBOX_ENTRY_NOTFOUND != mnLastPosGradient)
315 const SvxGradientListItem aItem(*(const SvxGradientListItem*)(pSh->GetItem(SID_GRADIENT_LIST)));
317 if(mnLastPosGradient < aItem.GetGradientList()->Count())
319 const XGradient aGradient = aItem.GetGradientList()->GetGradient(mnLastPosGradient)->GetGradient();
320 const XFillGradientItem aXFillGradientItem(mpLbFillAttr->GetEntry(mnLastPosGradient), aGradient);
321 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_GRADIENT, SFX_CALLMODE_RECORD, &aXFillGradientItem, 0L);
322 mpLbFillAttr->SelectEntryPos(mnLastPosGradient);
326 else
328 mpLbFillAttr->Disable();
330 break;
332 case XFILL_HATCH:
334 mpLbFillAttr->Show();
335 mpToolBoxColor->Hide();
337 if(pSh && pSh->GetItem(SID_HATCH_LIST))
339 if(!mpLbFillAttr->GetEntryCount())
341 const SvxHatchListItem aItem( *(const SvxHatchListItem*)(pSh->GetItem(SID_HATCH_LIST)));
342 mpLbFillAttr->Enable();
343 mpLbFillAttr->Clear();
344 mpLbFillAttr->Fill(aItem.GetHatchList());
347 mpLbFillAttr->AdaptDropDownLineCountToMaximum();
349 if(LISTBOX_ENTRY_NOTFOUND != mnLastPosHatch)
351 const SvxHatchListItem aItem(*(const SvxHatchListItem*)(pSh->GetItem(SID_HATCH_LIST)));
353 if(mnLastPosHatch < aItem.GetHatchList()->Count())
355 const XHatch aHatch = aItem.GetHatchList()->GetHatch(mnLastPosHatch)->GetHatch();
356 const XFillHatchItem aXFillHatchItem(mpLbFillAttr->GetSelectEntry(), aHatch);
357 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_HATCH, SFX_CALLMODE_RECORD, &aXFillHatchItem, 0L);
358 mpLbFillAttr->SelectEntryPos(mnLastPosHatch);
362 else
364 mpLbFillAttr->Disable();
366 break;
368 case XFILL_BITMAP:
370 mpLbFillAttr->Show();
371 mpToolBoxColor->Hide();
373 if(pSh && pSh->GetItem(SID_BITMAP_LIST))
375 if(!mpLbFillAttr->GetEntryCount())
377 const SvxBitmapListItem aItem( *(const SvxBitmapListItem*)(pSh->GetItem(SID_BITMAP_LIST)));
378 mpLbFillAttr->Enable();
379 mpLbFillAttr->Clear();
380 mpLbFillAttr->Fill(aItem.GetBitmapList());
383 mpLbFillAttr->AdaptDropDownLineCountToMaximum();
385 if(LISTBOX_ENTRY_NOTFOUND != mnLastPosBitmap)
387 const SvxBitmapListItem aItem(*(const SvxBitmapListItem*)(pSh->GetItem(SID_BITMAP_LIST)));
389 if(mnLastPosBitmap < aItem.GetBitmapList()->Count())
391 const XBitmapEntry* pXBitmapEntry = aItem.GetBitmapList()->GetBitmap(mnLastPosBitmap);
392 const XFillBitmapItem aXFillBitmapItem(mpLbFillAttr->GetSelectEntry(), pXBitmapEntry->GetGraphicObject());
393 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_BITMAP, SFX_CALLMODE_RECORD, &aXFillBitmapItem, 0L);
394 mpLbFillAttr->SelectEntryPos(mnLastPosBitmap);
398 else
400 mpLbFillAttr->Disable();
402 break;
406 meLastXFS = (sal_uInt16)eXFS;
408 if(XFILL_NONE != eXFS)
410 if(pToolBox)
412 mpLbFillType->Selected();
417 return 0;
422 IMPL_LINK( AreaPropertyPanel, SelectFillAttrHdl, ListBox*, pToolBox )
424 const XFillStyle eXFS = (XFillStyle)mpLbFillType->GetSelectEntryPos();
425 const XFillStyleItem aXFillStyleItem(eXFS);
426 SfxObjectShell* pSh = SfxObjectShell::Current();
428 if(pToolBox)
430 if((XFillStyle) meLastXFS != eXFS)
432 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_STYLE, SFX_CALLMODE_RECORD, &aXFillStyleItem, 0L);
435 switch(eXFS)
437 case XFILL_SOLID:
439 // //String aTmpStr = mpLbFillAttr->GetSelectEntry();
440 // //Color aColor = mpLbFillAttr->GetSelectEntryColor();
441 // //if(aColor.GetColor() == 0 && aTmpStr.Equals(String::CreateFromAscii("")))
442 // String aTmpStr;
443 // Color aColor = maLastColor;
444 // XFillColorItem aXFillColorItem( aTmpStr, aColor );
445 // GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_COLOR, SFX_CALLMODE_RECORD, &aXFillColorItem, 0L);
446 // maLastColor = aColor;
448 break;
450 case XFILL_GRADIENT:
452 sal_uInt16 nPos = mpLbFillAttr->GetSelectEntryPos();
454 if(LISTBOX_ENTRY_NOTFOUND == nPos)
456 nPos = mnLastPosGradient;
459 if(LISTBOX_ENTRY_NOTFOUND != nPos && pSh && pSh->GetItem(SID_GRADIENT_LIST))
461 const SvxGradientListItem aItem(*(const SvxGradientListItem*)(pSh->GetItem(SID_GRADIENT_LIST)));
463 if(nPos < aItem.GetGradientList()->Count())
465 const XGradient aGradient = aItem.GetGradientList()->GetGradient(nPos)->GetGradient();
466 const XFillGradientItem aXFillGradientItem(mpLbFillAttr->GetSelectEntry(), aGradient);
467 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_GRADIENT, SFX_CALLMODE_RECORD, &aXFillGradientItem, 0L);
471 if(LISTBOX_ENTRY_NOTFOUND != nPos)
473 mnLastPosGradient = nPos;
475 break;
477 case XFILL_HATCH:
479 sal_uInt16 nPos = mpLbFillAttr->GetSelectEntryPos();
481 if(LISTBOX_ENTRY_NOTFOUND == nPos)
483 nPos = mnLastPosHatch;
486 if(LISTBOX_ENTRY_NOTFOUND != nPos && pSh && pSh->GetItem(SID_HATCH_LIST))
488 const SvxHatchListItem aItem(*(const SvxHatchListItem*)(pSh->GetItem(SID_HATCH_LIST)));
490 if(nPos < aItem.GetHatchList()->Count())
492 const XHatch aHatch = aItem.GetHatchList()->GetHatch(nPos)->GetHatch();
493 const XFillHatchItem aXFillHatchItem( mpLbFillAttr->GetSelectEntry(), aHatch);
494 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_HATCH, SFX_CALLMODE_RECORD, &aXFillHatchItem, 0L);
498 if(LISTBOX_ENTRY_NOTFOUND != nPos)
500 mnLastPosHatch = nPos;
502 break;
504 case XFILL_BITMAP:
506 sal_uInt16 nPos = mpLbFillAttr->GetSelectEntryPos();
508 if(LISTBOX_ENTRY_NOTFOUND == nPos)
510 nPos = mnLastPosBitmap;
513 if(LISTBOX_ENTRY_NOTFOUND != nPos && pSh && pSh->GetItem(SID_BITMAP_LIST))
515 const SvxBitmapListItem aItem(*(const SvxBitmapListItem*)(pSh->GetItem(SID_BITMAP_LIST)));
517 if(nPos < aItem.GetBitmapList()->Count())
519 const XBitmapEntry* pXBitmapEntry = aItem.GetBitmapList()->GetBitmap(nPos);
520 const XFillBitmapItem aXFillBitmapItem(mpLbFillAttr->GetSelectEntry(), pXBitmapEntry->GetGraphicObject());
521 GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_BITMAP, SFX_CALLMODE_RECORD, &aXFillBitmapItem, 0L);
525 if(LISTBOX_ENTRY_NOTFOUND != nPos)
527 mnLastPosBitmap = nPos;
529 break;
531 default: break;
535 return 0;
539 IMPL_LINK(AreaPropertyPanel, ToolBoxColorDropHdl, ToolBox*, pToolBox)
541 const sal_uInt16 nId = pToolBox->GetCurItemId();
543 if(TBI_COLOR == nId)
545 maColorPopup.Show(*pToolBox);
547 if (mpColorItem)
549 maColorPopup.SetCurrentColor(mpColorItem->GetColorValue(), mbColorAvail);
551 else
553 maColorPopup.SetCurrentColor(COL_WHITE, false);
557 return 0;
562 void AreaPropertyPanel::SetColor (
563 const String& rsColorName,
564 const Color aColor)
566 const XFillColorItem aXFillColorItem(rsColorName, aColor);
567 mpBindings->GetDispatcher()->Execute(SID_ATTR_FILL_COLOR, SFX_CALLMODE_RECORD, &aXFillColorItem, 0L);
568 maLastColor = aColor;
574 PopupControl* AreaPropertyPanel::CreateTransparencyGradientControl (PopupContainer* pParent)
576 return new AreaTransparencyGradientControl(pParent, *this);
582 PopupControl* AreaPropertyPanel::CreateColorPopupControl (PopupContainer* pParent)
584 return new ColorControl(
585 pParent,
586 mpBindings,
587 SVX_RES(RID_POPUPPANEL_AERAPAGE_COLOR),
588 SVX_RES(VS_COLOR),
589 ::boost::bind(&AreaPropertyPanel::GetLastColor, this),
590 ::boost::bind(&AreaPropertyPanel::SetColor, this, _1,_2),
591 pParent,
598 void AreaPropertyPanel::SetupIcons(void)
600 if(Theme::GetBoolean(Theme::Bool_UseSymphonyIcons))
602 // todo
604 else
606 // todo
612 AreaPropertyPanel* AreaPropertyPanel::Create (
613 Window* pParent,
614 const cssu::Reference<css::frame::XFrame>& rxFrame,
615 SfxBindings* pBindings)
617 if (pParent == NULL)
618 throw lang::IllegalArgumentException(A2S("no parent Window given to AreaPropertyPanel::Create"), NULL, 0);
619 if ( ! rxFrame.is())
620 throw lang::IllegalArgumentException(A2S("no XFrame given to AreaPropertyPanel::Create"), NULL, 1);
621 if (pBindings == NULL)
622 throw lang::IllegalArgumentException(A2S("no SfxBindings given to AreaPropertyPanel::Create"), NULL, 2);
624 return new AreaPropertyPanel(
625 pParent,
626 rxFrame,
627 pBindings);
632 void AreaPropertyPanel::DataChanged(
633 const DataChangedEvent& rEvent)
635 (void)rEvent;
637 SetupIcons();
642 void AreaPropertyPanel::ImpUpdateTransparencies()
644 if(mpTransparanceItem.get() && mpFloatTransparenceItem.get())
646 bool bZeroValue(false);
648 if(mpTransparanceItem.get())
650 const sal_uInt16 nValue(mpTransparanceItem->GetValue());
652 if(!nValue)
654 bZeroValue = true;
656 else if(nValue <= 100)
658 mpLBTransType->Enable();
659 mpTrspTextFT->Enable();
660 mpLBTransType->SelectEntryPos(1);
661 mpBTNGradient->Hide();
662 mpMTRTransparent->Show();
663 mpMTRTransparent->Enable();
664 mpMTRTransparent->SetValue(nValue);
667 if(!bZeroValue)
669 maTrGrPopup.Hide();
673 if(bZeroValue && mpFloatTransparenceItem.get())
675 if(mpFloatTransparenceItem->IsEnabled())
677 const XGradient& rGradient = mpFloatTransparenceItem->GetGradientValue();
678 sal_uInt16 nEntryPos(0);
679 Image* pImage = 0;
681 mpLBTransType->Enable();
682 mpTrspTextFT->Enable();
683 mpMTRTransparent->Hide();
684 mpBTNGradient->Enable();
685 mpBTNGradient->Show();
687 switch(rGradient.GetGradientStyle())
689 case XGRAD_LINEAR:
691 nEntryPos = 2;
692 pImage = &maImgLinear;
693 break;
695 case XGRAD_AXIAL:
697 nEntryPos = 3;
698 pImage = &maImgAxial;
699 break;
701 case XGRAD_RADIAL:
703 nEntryPos = 4;
704 pImage = &maImgRadial;
705 break;
707 case XGRAD_ELLIPTICAL:
709 nEntryPos = 5;
710 pImage = &maImgElli;
711 break;
713 case XGRAD_SQUARE:
715 nEntryPos = 6;
716 pImage = &maImgQuad;
717 break;
719 case XGRAD_RECT:
721 nEntryPos = 7;
722 pImage = &maImgSquare;
723 break;
727 mpLBTransType->SelectEntryPos(nEntryPos);
728 mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT, *pImage);
729 bZeroValue = false;
731 else
733 bZeroValue = true;
737 if(bZeroValue)
739 mpLBTransType->Enable();
740 mpTrspTextFT->Enable();
741 mpLBTransType->SelectEntryPos(0);
742 mpBTNGradient->Hide();
743 mpMTRTransparent->Enable();
744 mpMTRTransparent->Show();
745 mpMTRTransparent->SetValue(0);
748 else
750 // no transparency at all
751 mpLBTransType->SetNoSelection();
752 mpLBTransType->Disable();
753 mpTrspTextFT->Disable();
754 mpMTRTransparent->Disable();
755 mpMTRTransparent->Show();
756 mpBTNGradient->Disable();
757 mpBTNGradient->Hide();
763 void AreaPropertyPanel::NotifyItemUpdate(
764 sal_uInt16 nSID,
765 SfxItemState eState,
766 const SfxPoolItem* pState,
767 const bool bIsEnabled)
769 (void)bIsEnabled;
770 const bool bDisabled(SFX_ITEM_DISABLED == eState);
772 switch(nSID)
774 case SID_ATTR_FILL_TRANSPARENCE:
775 case SID_ATTR_FILL_FLOATTRANSPARENCE:
777 bool bFillTransparenceChanged(false);
779 if(SID_ATTR_FILL_TRANSPARENCE == nSID)
781 bFillTransparenceChanged = true;
783 if(eState >= SFX_ITEM_AVAILABLE)
785 const SfxUInt16Item* pItem = dynamic_cast< const SfxUInt16Item* >(pState);
787 if(pItem && (!mpTransparanceItem || *pItem != *mpTransparanceItem))
789 mpTransparanceItem.reset((SfxUInt16Item*)pItem->Clone());
791 else
793 mpTransparanceItem.reset();
796 else
798 mpTransparanceItem.reset();
801 else // if(SID_ATTR_FILL_FLOATTRANSPARENCE == nSID)
803 bFillTransparenceChanged = true;
805 if(eState >= SFX_ITEM_AVAILABLE)
807 const XFillFloatTransparenceItem* pItem = dynamic_cast< const XFillFloatTransparenceItem* >(pState);
809 if(pItem && (!mpFloatTransparenceItem || *pItem != *mpFloatTransparenceItem))
811 mpFloatTransparenceItem.reset((XFillFloatTransparenceItem*)pItem->Clone());
813 else
815 mpFloatTransparenceItem.reset();
818 else
820 mpFloatTransparenceItem.reset();
824 if(bFillTransparenceChanged)
826 // update transparency settings dependent of mpTransparanceItem and mpFloatTransparenceItem
827 ImpUpdateTransparencies();
829 break;
831 case SID_ATTR_FILL_STYLE:
833 if(bDisabled)
835 mpLbFillType->Disable();
836 mpColorTextFT->Disable();
837 mpLbFillType->SetNoSelection();
838 mpLbFillAttr->Show();
839 mpLbFillAttr->Disable();
840 mpLbFillAttr->SetNoSelection();
841 mpToolBoxColor->Hide();
842 meLastXFS = -1;
843 mpStyleItem.reset();
846 if(eState >= SFX_ITEM_AVAILABLE)
848 const XFillStyleItem* pItem = dynamic_cast< const XFillStyleItem* >(pState);
850 if(pItem)
852 mpStyleItem.reset(dynamic_cast< XFillStyleItem* >(pItem->Clone()));
853 mpLbFillType->Enable();
854 mpColorTextFT->Enable();
855 XFillStyle eXFS = (XFillStyle)mpStyleItem->GetValue();
856 meLastXFS = eXFS;
857 mpLbFillType->SelectEntryPos(sal::static_int_cast< sal_uInt16 >(eXFS));
859 if(XFILL_NONE == eXFS)
861 mpLbFillAttr->SetNoSelection();
862 mpLbFillAttr->Disable();
865 Update();
866 break;
870 mpLbFillType->SetNoSelection();
871 mpLbFillAttr->Show();
872 mpLbFillAttr->Disable();
873 mpLbFillAttr->SetNoSelection();
874 mpToolBoxColor->Hide();
875 meLastXFS = -1;
876 mpStyleItem.reset();
877 break;
879 case SID_ATTR_FILL_COLOR:
881 if(SFX_ITEM_AVAILABLE == eState)
883 mpColorItem.reset(pState ? (XFillColorItem*)pState->Clone() : 0);
886 if(mpStyleItem && XFILL_SOLID == (XFillStyle)mpStyleItem->GetValue())
888 mpLbFillAttr->Hide();
889 mpToolBoxColor->Show();
891 if(SFX_ITEM_AVAILABLE == eState)
893 mpToolBoxColor->Enable();
894 mbColorAvail = true;
895 // maLastColor = mpColorItem->GetColorValue();
896 Update();
898 else if(SFX_ITEM_DISABLED == eState)
900 mpToolBoxColor->Disable();
901 mbColorAvail = false;
902 mpColorUpdater->Update(COL_WHITE);
904 else
906 mbColorAvail = false;
907 mpColorUpdater->Update(COL_WHITE);
910 break;
912 case SID_ATTR_FILL_GRADIENT:
914 if(SFX_ITEM_AVAILABLE == eState)
916 mpFillGradientItem.reset(pState ? (XFillGradientItem*)pState->Clone() : 0);
919 if(mpStyleItem && XFILL_GRADIENT == (XFillStyle)mpStyleItem->GetValue())
921 mpLbFillAttr->Show();
922 mpToolBoxColor->Hide();
924 if(SFX_ITEM_AVAILABLE == eState)
926 mpLbFillAttr->Enable();
927 Update();
929 else if(SFX_ITEM_DISABLED == eState )
931 mpLbFillAttr->Disable();
932 mpLbFillAttr->SetNoSelection();
934 else
936 mpLbFillAttr->SetNoSelection();
939 break;
941 case SID_ATTR_FILL_HATCH:
943 if(SFX_ITEM_AVAILABLE == eState)
945 mpHatchItem.reset(pState ? (XFillHatchItem*)pState->Clone() : 0);
948 if(mpStyleItem && XFILL_HATCH == (XFillStyle)mpStyleItem->GetValue())
950 mpLbFillAttr->Show();
951 mpToolBoxColor->Hide();
953 if(SFX_ITEM_AVAILABLE == eState)
955 mpLbFillAttr->Enable();
956 Update();
958 else if(SFX_ITEM_DISABLED == eState )
960 mpLbFillAttr->Disable();
961 mpLbFillAttr->SetNoSelection();
963 else
965 mpLbFillAttr->SetNoSelection();
968 break;
970 case SID_ATTR_FILL_BITMAP:
972 if(SFX_ITEM_AVAILABLE == eState)
974 mpBitmapItem.reset(pState ? (XFillBitmapItem*)pState->Clone() : 0);
977 if(mpStyleItem && XFILL_BITMAP == (XFillStyle)mpStyleItem->GetValue())
979 mpLbFillAttr->Show();
980 mpToolBoxColor->Hide();
982 if(SFX_ITEM_AVAILABLE == eState)
984 mpLbFillAttr->Enable();
985 Update();
987 else if(SFX_ITEM_DISABLED == eState )
989 mpLbFillAttr->Disable();
990 mpLbFillAttr->SetNoSelection();
992 else
994 mpLbFillAttr->SetNoSelection();
997 break;
999 case SID_COLOR_TABLE:
1001 if(SFX_ITEM_AVAILABLE == eState)
1003 if(mpStyleItem && XFILL_SOLID == (XFillStyle)mpStyleItem->GetValue())
1005 if(mpColorItem)
1007 const Color aColor = mpColorItem->GetColorValue();
1008 const SfxObjectShell* pSh = SfxObjectShell::Current();
1009 const SvxColorListItem aItem(*(const SvxColorListItem*)(pSh->GetItem(SID_COLOR_TABLE)));
1011 mpLbFillAttr->Clear();
1012 mpLbFillAttr->Enable();
1013 mpLbFillAttr->Fill(aItem.GetColorList());
1014 mpLbFillAttr->SelectEntry(aColor);
1016 else
1018 mpLbFillAttr->SetNoSelection();
1022 break;
1024 case SID_GRADIENT_LIST:
1026 if(SFX_ITEM_AVAILABLE == eState)
1028 if(mpStyleItem && XFILL_GRADIENT == (XFillStyle)mpStyleItem->GetValue())
1030 if(mpFillGradientItem)
1032 const String aString( mpFillGradientItem->GetName() );
1033 const SfxObjectShell* pSh = SfxObjectShell::Current();
1034 const SvxGradientListItem aItem( *(const SvxGradientListItem*)(pSh->GetItem(SID_GRADIENT_LIST)));
1036 mpLbFillAttr->Clear();
1037 mpLbFillAttr->Enable();
1038 mpLbFillAttr->Fill(aItem.GetGradientList());
1039 mpLbFillAttr->SelectEntry(aString);
1041 else
1043 mpLbFillAttr->SetNoSelection();
1047 break;
1049 case SID_HATCH_LIST:
1051 if(SFX_ITEM_AVAILABLE == eState)
1053 if(mpStyleItem && XFILL_HATCH == (XFillStyle)mpStyleItem->GetValue())
1055 if(mpHatchItem)
1057 const String aString( mpHatchItem->GetName() );
1058 const SfxObjectShell* pSh = SfxObjectShell::Current();
1059 const SvxHatchListItem aItem(*(const SvxHatchListItem*)(pSh->GetItem(SID_HATCH_LIST)));
1061 mpLbFillAttr->Clear();
1062 mpLbFillAttr->Enable();
1063 mpLbFillAttr->Fill(aItem.GetHatchList());
1064 mpLbFillAttr->SelectEntry(aString);
1066 else
1068 mpLbFillAttr->SetNoSelection();
1072 break;
1074 case SID_BITMAP_LIST:
1076 if(SFX_ITEM_AVAILABLE == eState)
1078 if(mpStyleItem && XFILL_BITMAP == (XFillStyle)mpStyleItem->GetValue())
1080 if(mpBitmapItem)
1082 const String aString( mpBitmapItem->GetName() );
1083 const SfxObjectShell* pSh = SfxObjectShell::Current();
1084 const SvxBitmapListItem aItem(*(const SvxBitmapListItem*)(pSh->GetItem(SID_BITMAP_LIST)));
1086 mpLbFillAttr->Clear();
1087 mpLbFillAttr->Enable();
1088 mpLbFillAttr->Fill(aItem.GetBitmapList());
1089 mpLbFillAttr->SelectEntry(aString);
1091 else
1093 mpLbFillAttr->SetNoSelection();
1097 break;
1104 SfxBindings* AreaPropertyPanel::GetBindings()
1106 return mpBindings;
1111 void AreaPropertyPanel::Update()
1113 if(mpStyleItem)
1115 const XFillStyle eXFS = (XFillStyle)mpStyleItem->GetValue();
1116 SfxObjectShell* pSh = SfxObjectShell::Current();
1118 switch( eXFS )
1120 case XFILL_NONE:
1122 mpLbFillAttr->Show();
1123 mpToolBoxColor->Hide();
1124 break;
1126 case XFILL_SOLID:
1128 if(mpColorItem)
1130 mpLbFillAttr->Hide();
1131 mpToolBoxColor->Show();
1132 mpColorUpdater->Update(mpColorItem->GetColorValue());
1134 else
1136 mpColorUpdater->Update(COL_WHITE);
1138 break;
1140 case XFILL_GRADIENT:
1142 mpLbFillAttr->Show();
1143 mpToolBoxColor->Hide();
1145 if(pSh && pSh->GetItem(SID_GRADIENT_LIST))
1147 const SvxGradientListItem aItem(*(const SvxGradientListItem*)(pSh->GetItem(SID_GRADIENT_LIST)));
1148 mpLbFillAttr->Enable();
1149 mpLbFillAttr->Clear();
1150 mpLbFillAttr->Fill(aItem.GetGradientList());
1152 if(mpFillGradientItem)
1154 const String aString(mpFillGradientItem->GetName());
1156 mpLbFillAttr->SelectEntry(aString);
1158 else
1160 mpLbFillAttr->SetNoSelection();
1163 else
1165 mpLbFillAttr->SetNoSelection();
1167 break;
1169 case XFILL_HATCH:
1171 mpLbFillAttr->Show();
1172 mpToolBoxColor->Hide();
1174 if(pSh && pSh->GetItem(SID_HATCH_LIST))
1176 const SvxHatchListItem aItem(*(const SvxHatchListItem*)(pSh->GetItem(SID_HATCH_LIST)));
1177 mpLbFillAttr->Enable();
1178 mpLbFillAttr->Clear();
1179 mpLbFillAttr->Fill(aItem.GetHatchList());
1181 if(mpHatchItem)
1183 const String aString(mpHatchItem->GetName());
1185 mpLbFillAttr->SelectEntry( aString );
1187 else
1189 mpLbFillAttr->SetNoSelection();
1192 else
1194 mpLbFillAttr->SetNoSelection();
1196 break;
1198 case XFILL_BITMAP:
1200 mpLbFillAttr->Show();
1201 mpToolBoxColor->Hide();
1203 if(pSh && pSh->GetItem(SID_BITMAP_LIST))
1205 const SvxBitmapListItem aItem(*(const SvxBitmapListItem*)(pSh->GetItem(SID_BITMAP_LIST)));
1206 mpLbFillAttr->Enable();
1207 mpLbFillAttr->Clear();
1208 mpLbFillAttr->Fill(aItem.GetBitmapList());
1210 if(mpBitmapItem)
1212 const String aString(mpBitmapItem->GetName());
1214 mpLbFillAttr->SelectEntry(aString);
1216 else
1218 mpLbFillAttr->SetNoSelection();
1221 else
1223 mpLbFillAttr->SetNoSelection();
1225 break;
1227 default:
1228 OSL_ENSURE(false, "Non supported FillType (!)");
1229 break;
1236 IMPL_LINK( AreaPropertyPanel, ImplPopupModeEndHdl, FloatingWindow*, EMPTYARG )
1238 return 0;
1243 IMPL_LINK( AreaPropertyPanel, ClickTrGrHdl_Impl, ToolBox*, pToolBox )
1245 maTrGrPopup.Rearrange(mpFloatTransparenceItem.get());
1246 OSL_ASSERT(pToolBox->GetCurItemId() == TBI_BTX_GRADIENT);
1247 maTrGrPopup.Show(*pToolBox);
1249 return (0L);
1254 IMPL_LINK(AreaPropertyPanel, ChangeTrgrTypeHdl_Impl, void *, EMPTYARG)
1256 sal_uInt16 nSelectType = mpLBTransType->GetSelectEntryPos();
1257 bool bGradient = false;
1258 sal_uInt16 nTrans = 0;
1260 if(!nSelectType)
1262 mpBTNGradient->Hide();
1263 mpMTRTransparent->Show();
1264 mpMTRTransparent->Enable();
1265 mpMTRTransparent->SetValue(0);
1267 else if(1 == nSelectType)
1269 mpBTNGradient->Hide();
1270 mpMTRTransparent->Show();
1271 nTrans = mnLastTransSolid;
1272 mpMTRTransparent->SetValue(nTrans);
1273 mpLBTransType->SelectEntryPos(1);
1274 mpMTRTransparent->Enable();
1276 else
1278 mpBTNGradient->Show();
1280 switch (nSelectType)
1282 case 2:
1283 mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT, maImgLinear);
1284 break;
1285 case 3:
1286 mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT, maImgAxial);
1287 break;
1288 case 4:
1289 mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT, maImgRadial);
1290 break;
1291 case 5:
1292 mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT, maImgElli );
1293 break;
1294 case 6:
1295 mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT, maImgQuad );
1296 break;
1297 case 7:
1298 mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT, maImgSquare);
1299 break;
1302 mpMTRTransparent->Hide();
1303 mpBTNGradient->Enable();
1304 bGradient = true;
1307 const XFillTransparenceItem aLinearItem(nTrans);
1308 GetBindings()->GetDispatcher()->Execute( SID_ATTR_FILL_TRANSPARENCE, SFX_CALLMODE_RECORD, &aLinearItem, 0L );
1310 if(nSelectType > 1)
1312 nSelectType -= 2;
1315 XGradient aTmpGradient;
1317 switch(nSelectType)
1319 case XGRAD_LINEAR:
1320 aTmpGradient = maGradientLinear;
1321 break;
1322 case XGRAD_AXIAL:
1323 aTmpGradient = maGradientAxial;
1324 break;
1325 case XGRAD_RADIAL:
1326 aTmpGradient = maGradientRadial;
1327 break;
1328 case XGRAD_ELLIPTICAL:
1329 aTmpGradient = maGradientElliptical;
1330 break;
1331 case XGRAD_SQUARE:
1332 aTmpGradient = maGradientSquare;
1333 break;
1334 case XGRAD_RECT:
1335 aTmpGradient = maGradientRect;
1336 break;
1339 SfxItemPool* pPool = 0;
1340 const XFillFloatTransparenceItem aGradientItem(pPool, aTmpGradient, sal_Bool(bGradient));
1341 GetBindings()->GetDispatcher()->Execute( SID_ATTR_FILL_FLOATTRANSPARENCE, SFX_CALLMODE_RECORD, &aGradientItem, 0L );
1343 return( 0L );
1348 IMPL_LINK(AreaPropertyPanel, ModifyTransparentHdl_Impl, void*, EMPTYARG)
1350 const sal_uInt16 nTrans = (sal_uInt16)mpMTRTransparent->GetValue();
1351 mnLastTransSolid = nTrans;
1352 const sal_uInt16 nSelectType = mpLBTransType->GetSelectEntryPos();
1354 if(nTrans && !nSelectType)
1356 mpLBTransType->SelectEntryPos(1);
1359 const XFillTransparenceItem aLinearItem(nTrans);
1360 GetBindings()->GetDispatcher()->Execute( SID_ATTR_FILL_TRANSPARENCE, SFX_CALLMODE_RECORD, &aLinearItem, 0L );
1362 return 0L;
1366 Color AreaPropertyPanel::GetLastColor (void) const
1368 return maLastColor;
1374 XGradient AreaPropertyPanel::GetGradient (const XGradientStyle eStyle) const
1376 switch (eStyle)
1378 default:
1379 case XGRAD_LINEAR:
1380 return maGradientLinear;
1381 case XGRAD_AXIAL:
1382 return maGradientAxial;
1383 case XGRAD_RADIAL:
1384 return maGradientRadial;
1385 case XGRAD_ELLIPTICAL:
1386 return maGradientElliptical;
1387 case XGRAD_SQUARE:
1388 return maGradientSquare;
1389 case XGRAD_RECT:
1390 return maGradientRect;
1397 void AreaPropertyPanel::SetGradient (const XGradient& rGradient)
1399 switch (rGradient.GetGradientStyle())
1401 case XGRAD_LINEAR:
1402 maGradientLinear = rGradient;
1403 break;
1404 case XGRAD_AXIAL:
1405 maGradientAxial = rGradient;
1406 break;
1407 case XGRAD_RADIAL:
1408 maGradientRadial = rGradient;
1409 break;
1410 case XGRAD_ELLIPTICAL:
1411 maGradientElliptical = rGradient;
1412 break;
1413 case XGRAD_SQUARE:
1414 maGradientSquare = rGradient;
1415 break;
1416 case XGRAD_RECT:
1417 maGradientRect = rGradient;
1418 break;
1425 sal_Int32 AreaPropertyPanel::GetSelectedTransparencyTypeIndex (void) const
1427 return mpLBTransType->GetSelectEntryPos();
1430 } } // end of namespace svx::sidebar
1432 // eof