xref: /AOO41X/main/svx/source/sidebar/area/AreaPropertyPanel.cxx (revision eb6ac606d46d8066bdef5adcb81b681e225acda5)
18dcb2a10SAndre Fischer /**************************************************************
28dcb2a10SAndre Fischer  *
38dcb2a10SAndre Fischer  * Licensed to the Apache Software Foundation (ASF) under one
48dcb2a10SAndre Fischer  * or more contributor license agreements.  See the NOTICE file
58dcb2a10SAndre Fischer  * distributed with this work for additional information
68dcb2a10SAndre Fischer  * regarding copyright ownership.  The ASF licenses this file
78dcb2a10SAndre Fischer  * to you under the Apache License, Version 2.0 (the
88dcb2a10SAndre Fischer  * "License"); you may not use this file except in compliance
98dcb2a10SAndre Fischer  * with the License.  You may obtain a copy of the License at
108dcb2a10SAndre Fischer  *
118dcb2a10SAndre Fischer  *   http://www.apache.org/licenses/LICENSE-2.0
128dcb2a10SAndre Fischer  *
138dcb2a10SAndre Fischer  * Unless required by applicable law or agreed to in writing,
148dcb2a10SAndre Fischer  * software distributed under the License is distributed on an
158dcb2a10SAndre Fischer  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
168dcb2a10SAndre Fischer  * KIND, either express or implied.  See the License for the
178dcb2a10SAndre Fischer  * specific language governing permissions and limitations
188dcb2a10SAndre Fischer  * under the License.
198dcb2a10SAndre Fischer  *
208dcb2a10SAndre Fischer  *************************************************************/
218dcb2a10SAndre Fischer 
228dcb2a10SAndre Fischer #include "svx/sidebar/PopupContainer.hxx"
238dcb2a10SAndre Fischer #include "AreaTransparencyGradientControl.hxx"
248dcb2a10SAndre Fischer 
258dcb2a10SAndre Fischer #include <sfx2/sidebar/propertypanel.hrc>
268dcb2a10SAndre Fischer #include <sfx2/sidebar/Theme.hxx>
278dcb2a10SAndre Fischer #include <sfx2/sidebar/ControlFactory.hxx>
288dcb2a10SAndre Fischer #include <AreaPropertyPanel.hxx>
298dcb2a10SAndre Fischer #include <AreaPropertyPanel.hrc>
308dcb2a10SAndre Fischer #include <svx/dialogs.hrc>
318dcb2a10SAndre Fischer #include <svx/dialmgr.hxx>
328dcb2a10SAndre Fischer #include <sfx2/objsh.hxx>
338dcb2a10SAndre Fischer #include <svx/xfltrit.hxx>
348dcb2a10SAndre Fischer #include <svx/xflftrit.hxx>
358dcb2a10SAndre Fischer #include <svx/xtable.hxx>
368dcb2a10SAndre Fischer #include <sfx2/dispatch.hxx>
378dcb2a10SAndre Fischer #include <sfx2/bindings.hxx>
388dcb2a10SAndre Fischer #include <helpid.hrc>
398dcb2a10SAndre Fischer #include <svtools/valueset.hxx>
408dcb2a10SAndre Fischer #include <unotools/pathoptions.hxx>
418dcb2a10SAndre Fischer #include <svx/svxitems.hrc>
428dcb2a10SAndre Fischer #include <vcl/toolbox.hxx>
438dcb2a10SAndre Fischer #include <svtools/toolbarmenu.hxx>
448dcb2a10SAndre Fischer #include "sidebar/ColorControl.hxx"
458dcb2a10SAndre Fischer 
468dcb2a10SAndre Fischer #include <boost/bind.hpp>
478dcb2a10SAndre Fischer 
488dcb2a10SAndre Fischer using namespace css;
498dcb2a10SAndre Fischer using namespace cssu;
508dcb2a10SAndre Fischer using ::sfx2::sidebar::Theme;
518dcb2a10SAndre Fischer 
528dcb2a10SAndre Fischer #define A2S(pString) (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(pString)))
538dcb2a10SAndre Fischer 
548dcb2a10SAndre Fischer 
558dcb2a10SAndre Fischer 
568dcb2a10SAndre Fischer 
578dcb2a10SAndre Fischer namespace svx { namespace sidebar {
588dcb2a10SAndre Fischer 
598dcb2a10SAndre Fischer const sal_Int32 AreaPropertyPanel::DEFAULT_CENTERX = 50;
608dcb2a10SAndre Fischer const sal_Int32 AreaPropertyPanel::DEFAULT_CENTERY = 50;
618dcb2a10SAndre Fischer const sal_Int32 AreaPropertyPanel::DEFAULT_ANGLE = 0;
628dcb2a10SAndre Fischer const sal_Int32 AreaPropertyPanel::DEFAULT_STARTVALUE = 0;
638dcb2a10SAndre Fischer const sal_Int32 AreaPropertyPanel::DEFAULT_ENDVALUE = 16777215;
648dcb2a10SAndre Fischer const sal_Int32 AreaPropertyPanel::DEFAULT_BORDER = 0;
658dcb2a10SAndre Fischer 
668dcb2a10SAndre Fischer 
678dcb2a10SAndre Fischer AreaPropertyPanel::AreaPropertyPanel(
688dcb2a10SAndre Fischer     Window* pParent,
698dcb2a10SAndre Fischer     const cssu::Reference<css::frame::XFrame>& rxFrame,
708dcb2a10SAndre Fischer     SfxBindings* pBindings)
71ee093554SAndre Fischer     : Control(pParent, SVX_RES(RID_SIDEBAR_AREA_PANEL)),
728dcb2a10SAndre Fischer       meLastXFS(-1),
738dcb2a10SAndre Fischer       maLastColor(Color(COL_DEFAULT_SHAPE_FILLING)),
748dcb2a10SAndre Fischer       mnLastPosGradient(0),
758dcb2a10SAndre Fischer       mnLastPosHatch(0),
768dcb2a10SAndre Fischer       mnLastPosBitmap(0),
778dcb2a10SAndre Fischer       mnLastTransSolid(50),
788dcb2a10SAndre Fischer       maGradientLinear(),
798dcb2a10SAndre Fischer       maGradientAxial(),
808dcb2a10SAndre Fischer       maGradientRadial(),
818dcb2a10SAndre Fischer       maGradientElliptical(),
828dcb2a10SAndre Fischer       maGradientSquare(),
838dcb2a10SAndre Fischer       maGradientRect(),
848dcb2a10SAndre Fischer       mpColorTextFT(new FixedText(this, SVX_RES(FT_COLOR_LIST))),
858dcb2a10SAndre Fischer       mpLbFillType(new SvxFillTypeBox(this)),
868dcb2a10SAndre Fischer       mpLbFillAttr(new SvxFillAttrBox(this)),
878dcb2a10SAndre Fischer       mpToolBoxColorBackground(sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this)),
888dcb2a10SAndre Fischer       mpToolBoxColor(sfx2::sidebar::ControlFactory::CreateToolBox(mpToolBoxColorBackground.get(), SVX_RES(TB_COLOR))),
898dcb2a10SAndre Fischer       mpTrspTextFT(new FixedText(this, SVX_RES(FL_TRSP_TEXT))),
908dcb2a10SAndre Fischer       mpLBTransType(new ListBox(this, SVX_RES(LB_TRGR_TYPES))),
918dcb2a10SAndre Fischer       mpMTRTransparent(new MetricField(this, SVX_RES(MTR_TRANSPARENT))),
928dcb2a10SAndre Fischer       mpBTNGradientBackground(sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this)),
938dcb2a10SAndre Fischer       mpBTNGradient(sfx2::sidebar::ControlFactory::CreateToolBox(mpBTNGradientBackground.get(), SVX_RES(BTN_GRADIENT))),
948dcb2a10SAndre Fischer       mpColorUpdater(new ::svx::ToolboxButtonColorUpdater(SID_ATTR_FILL_COLOR, TBI_COLOR, mpToolBoxColor.get(), TBX_UPDATER_MODE_CHAR_COLOR_NEW)),
958dcb2a10SAndre Fischer       mpStyleItem(),
968dcb2a10SAndre Fischer       mpColorItem(),
978dcb2a10SAndre Fischer       mpFillGradientItem(),
988dcb2a10SAndre Fischer       mpHatchItem(),
998dcb2a10SAndre Fischer       mpBitmapItem(),
1008dcb2a10SAndre Fischer       mpColorTableItem(),
1018dcb2a10SAndre Fischer       mpGradientListItem(),
1028dcb2a10SAndre Fischer       mpHatchListItem(),
1038dcb2a10SAndre Fischer       mpBitmapListItem(),
1048dcb2a10SAndre Fischer       maStyleControl(SID_ATTR_FILL_STYLE, *pBindings, *this),
1058dcb2a10SAndre Fischer       maColorControl(SID_ATTR_FILL_COLOR, *pBindings, *this),
1068dcb2a10SAndre Fischer       maGradientControl(SID_ATTR_FILL_GRADIENT, *pBindings, *this),
1078dcb2a10SAndre Fischer       maHatchControl(SID_ATTR_FILL_HATCH, *pBindings, *this),
1088dcb2a10SAndre Fischer       maBitmapControl(SID_ATTR_FILL_BITMAP, *pBindings, *this),
1098dcb2a10SAndre Fischer       maColorTableControl(SID_COLOR_TABLE, *pBindings, *this),
1108dcb2a10SAndre Fischer       maGradientListControl(SID_GRADIENT_LIST, *pBindings, *this),
1118dcb2a10SAndre Fischer       maHatchListControl(SID_HATCH_LIST, *pBindings, *this),
1128dcb2a10SAndre Fischer       maBitmapListControl(SID_BITMAP_LIST, *pBindings, *this),
1138dcb2a10SAndre Fischer       maFillTransparenceController(SID_ATTR_FILL_TRANSPARENCE, *pBindings, *this),
1148dcb2a10SAndre Fischer       maFillFloatTransparenceController(SID_ATTR_FILL_FLOATTRANSPARENCE, *pBindings, *this),
1158dcb2a10SAndre Fischer       maImgAxial(SVX_RES(IMG_AXIAL)),
1168dcb2a10SAndre Fischer       maImgElli(SVX_RES(IMG_ELLI)),
1178dcb2a10SAndre Fischer       maImgQuad(SVX_RES(IMG_QUAD)),
1188dcb2a10SAndre Fischer       maImgRadial(SVX_RES(IMG_RADIAL)),
1198dcb2a10SAndre Fischer       maImgSquare(SVX_RES(IMG_SQUARE)),
1208dcb2a10SAndre Fischer       maImgLinear(SVX_RES(IMG_LINEAR)),
1218dcb2a10SAndre Fischer       maImgColor(SVX_RES(IMG_COLOR)),
1228dcb2a10SAndre Fischer       maImgAxialH(SVX_RES(IMG_AXIAL_H)),
1238dcb2a10SAndre Fischer       maImgElliH(SVX_RES(IMG_ELLI_H)),
1248dcb2a10SAndre Fischer       maImgQuadH(SVX_RES(IMG_QUAD_H)),
1258dcb2a10SAndre Fischer       maImgRadialH(SVX_RES(IMG_RADIAL_H)),
1268dcb2a10SAndre Fischer       maImgSquareH(SVX_RES(IMG_SQUARE_H)),
1278dcb2a10SAndre Fischer       maImgLinearH(SVX_RES(IMG_LINEAR_H)),
1288dcb2a10SAndre Fischer       maImgColorH(SVX_RES(IMG_COLOR_H)),
1298dcb2a10SAndre Fischer       msHelpFillType(SVX_RES(STR_HELP_TYPE)),
1308dcb2a10SAndre Fischer       msHelpFillAttr(SVX_RES(STR_HELP_ATTR)),
1318dcb2a10SAndre Fischer       maTrGrPopup(this, ::boost::bind(&AreaPropertyPanel::CreateTransparencyGradientControl, this, _1)),
1328dcb2a10SAndre Fischer       maColorPopup(this, ::boost::bind(&AreaPropertyPanel::CreateColorPopupControl, this, _1)),
1338dcb2a10SAndre Fischer       mpFloatTransparenceItem(),
1348dcb2a10SAndre Fischer       mpTransparanceItem(),
1358dcb2a10SAndre Fischer       mxFrame(rxFrame),
1368dcb2a10SAndre Fischer       maContext(),
1378dcb2a10SAndre Fischer       mpBindings(pBindings),
1388dcb2a10SAndre Fischer       mbTBShow(true),
1398dcb2a10SAndre Fischer       mbColorAvail(true)
1408dcb2a10SAndre Fischer {
1418dcb2a10SAndre Fischer     Initialize();
1428dcb2a10SAndre Fischer     FreeResource();
1438dcb2a10SAndre Fischer }
1448dcb2a10SAndre Fischer 
1458dcb2a10SAndre Fischer 
1468dcb2a10SAndre Fischer 
1478dcb2a10SAndre Fischer AreaPropertyPanel::~AreaPropertyPanel()
1488dcb2a10SAndre Fischer {
1498dcb2a10SAndre Fischer     // Destroy the toolboxes, then their background windows.
1508dcb2a10SAndre Fischer     mpToolBoxColor.reset();
1518dcb2a10SAndre Fischer     mpBTNGradient.reset();
1528dcb2a10SAndre Fischer     mpToolBoxColorBackground.reset();
1538dcb2a10SAndre Fischer     mpBTNGradientBackground.reset();
1548dcb2a10SAndre Fischer }
1558dcb2a10SAndre Fischer 
1568dcb2a10SAndre Fischer 
1578dcb2a10SAndre Fischer 
1588dcb2a10SAndre Fischer void AreaPropertyPanel::ShowMenu (void)
1598dcb2a10SAndre Fischer {
1608dcb2a10SAndre Fischer     if (mpBindings != NULL)
1618dcb2a10SAndre Fischer     {
1628dcb2a10SAndre Fischer         SfxDispatcher* pDispatcher = mpBindings->GetDispatcher();
1638dcb2a10SAndre Fischer         if (pDispatcher != NULL)
1648dcb2a10SAndre Fischer             pDispatcher->Execute(SID_ATTRIBUTES_AREA, SFX_CALLMODE_ASYNCHRON);
1658dcb2a10SAndre Fischer     }
1668dcb2a10SAndre Fischer }
1678dcb2a10SAndre Fischer 
1688dcb2a10SAndre Fischer 
1698dcb2a10SAndre Fischer 
1708dcb2a10SAndre Fischer void AreaPropertyPanel::Initialize()
1718dcb2a10SAndre Fischer {
1728dcb2a10SAndre Fischer     maGradientLinear.SetXOffset(DEFAULT_CENTERX);
1738dcb2a10SAndre Fischer     maGradientLinear.SetYOffset(DEFAULT_CENTERY);
1748dcb2a10SAndre Fischer     maGradientLinear.SetAngle(DEFAULT_ANGLE);
1758dcb2a10SAndre Fischer     maGradientLinear.SetStartColor(Color(DEFAULT_STARTVALUE));
1768dcb2a10SAndre Fischer     maGradientLinear.SetEndColor(Color(DEFAULT_ENDVALUE));
1778dcb2a10SAndre Fischer     maGradientLinear.SetBorder(DEFAULT_BORDER);
1788dcb2a10SAndre Fischer     maGradientLinear.SetGradientStyle(XGRAD_LINEAR);
1798dcb2a10SAndre Fischer 
1808dcb2a10SAndre Fischer     maGradientAxial = maGradientLinear;
1818dcb2a10SAndre Fischer     maGradientAxial.SetGradientStyle(XGRAD_AXIAL);
1828dcb2a10SAndre Fischer 
1838dcb2a10SAndre Fischer     maGradientRadial = maGradientLinear;
1848dcb2a10SAndre Fischer     maGradientRadial.SetGradientStyle(XGRAD_RADIAL);
1858dcb2a10SAndre Fischer 
1868dcb2a10SAndre Fischer     maGradientElliptical = maGradientLinear;
1878dcb2a10SAndre Fischer     maGradientElliptical.SetGradientStyle(XGRAD_ELLIPTICAL);
1888dcb2a10SAndre Fischer 
1898dcb2a10SAndre Fischer     maGradientSquare = maGradientLinear;
1908dcb2a10SAndre Fischer     maGradientSquare.SetGradientStyle(XGRAD_SQUARE);
1918dcb2a10SAndre Fischer 
1928dcb2a10SAndre Fischer     maGradientRect = maGradientLinear;
1938dcb2a10SAndre Fischer     maGradientRect.SetGradientStyle(XGRAD_RECT);
1948dcb2a10SAndre Fischer 
1958dcb2a10SAndre Fischer     Size aLogicalFillSize(MBOX_WIDTH,LISTBOX_HEIGHT);
1968dcb2a10SAndre Fischer     Size aLogicalAttrSize(MBOX_WIDTH + 1,LISTBOX_HEIGHT);
1978dcb2a10SAndre Fischer 
1988dcb2a10SAndre Fischer     Point aPoint(SECTIONPAGE_MARGIN_HORIZONTAL,SECTIONPAGE_MARGIN_VERTICAL_TOP + FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL);
1998dcb2a10SAndre Fischer     Point aPoint_Picker(SECTIONPAGE_MARGIN_HORIZONTAL + MBOX_WIDTH + CONTROL_SPACING_HORIZONTAL,SECTIONPAGE_MARGIN_VERTICAL_TOP + FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL);
2008dcb2a10SAndre Fischer 
2018dcb2a10SAndre Fischer     Size aTypeSize(LogicToPixel(aLogicalFillSize, MAP_APPFONT));
2028dcb2a10SAndre Fischer     Size aAttrSize(LogicToPixel(aLogicalAttrSize, MAP_APPFONT));
2038dcb2a10SAndre Fischer 
2048dcb2a10SAndre Fischer     Point aTypePoint(LogicToPixel(aPoint, MAP_APPFONT));
2058dcb2a10SAndre Fischer     Point aAttrPoint(LogicToPixel(aPoint_Picker, MAP_APPFONT));
2068dcb2a10SAndre Fischer 
2078dcb2a10SAndre Fischer     mpLbFillType->SetPosSizePixel(aTypePoint,aTypeSize);
2088dcb2a10SAndre Fischer     mpLbFillAttr->SetPosSizePixel(aAttrPoint,aAttrSize);
2098dcb2a10SAndre Fischer 
2108dcb2a10SAndre Fischer     mpLbFillType->SetHelpId(HID_PPROPERTYPANEL_AREA_LB_FILL_TYPES);
2118dcb2a10SAndre Fischer     mpLbFillAttr->SetHelpId(HID_PPROPERTYPANEL_AREA_LB_FILL_ATTR);
2128dcb2a10SAndre Fischer 
2138dcb2a10SAndre Fischer     mpLbFillType->SetQuickHelpText(msHelpFillType);
2148dcb2a10SAndre Fischer     mpLbFillAttr->SetQuickHelpText(msHelpFillAttr);
2158dcb2a10SAndre Fischer 
2168dcb2a10SAndre Fischer     mpLbFillType->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Fill")));    //wj acc
2178dcb2a10SAndre Fischer     mpLbFillAttr->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Fill")));    //wj acc
2188dcb2a10SAndre Fischer 
2198dcb2a10SAndre Fischer     Link aLink = LINK( this, AreaPropertyPanel, SelectFillTypeHdl );
2208dcb2a10SAndre Fischer     mpLbFillType->SetSelectHdl( aLink );
2218dcb2a10SAndre Fischer 
2228dcb2a10SAndre Fischer     aLink = LINK( this, AreaPropertyPanel, SelectFillAttrHdl );
2238dcb2a10SAndre Fischer     mpLbFillAttr->SetSelectHdl( aLink );
2248dcb2a10SAndre Fischer 
2258dcb2a10SAndre Fischer     //add  for new color picker
2268dcb2a10SAndre Fischer     mpLbFillAttr->Hide();
2278dcb2a10SAndre Fischer     mpToolBoxColor->SetItemImage(TBI_COLOR, GetDisplayBackground().GetColor().IsDark()? maImgColorH : maImgColor);
2288dcb2a10SAndre Fischer     Size aTbxSize( mpToolBoxColor->CalcWindowSizePixel() );
2298dcb2a10SAndre Fischer     mpToolBoxColor->SetOutputSizePixel( aTbxSize );
2308dcb2a10SAndre Fischer     mpToolBoxColor->SetItemBits( TBI_COLOR, mpToolBoxColor->GetItemBits( TBI_COLOR ) | TIB_DROPDOWNONLY );
2318dcb2a10SAndre Fischer     mpToolBoxColor->SetBackground(Wallpaper());
2328dcb2a10SAndre Fischer     mpToolBoxColor->SetPaintTransparent(true);
2338dcb2a10SAndre Fischer     mpToolBoxColor->SetQuickHelpText(TBI_COLOR, String(SVX_RES(STR_HELP_COLOR)));    //wj acc
2348dcb2a10SAndre Fischer     //mpToolBoxColor->SetItemText(TBI_COLOR, msHelpFillAttr);
2358dcb2a10SAndre Fischer 
2368dcb2a10SAndre Fischer     long aHeightLBStyle = mpLbFillType->GetSizePixel().getHeight();
2378dcb2a10SAndre Fischer     long aLBPosY = mpLbFillType->GetPosPixel().getY();
2388dcb2a10SAndre Fischer     long aHeightTBAttr = mpToolBoxColor->GetSizePixel().getHeight();
2398dcb2a10SAndre Fischer     Point aPointTBAttr = mpToolBoxColor->GetPosPixel();
2408dcb2a10SAndre Fischer     aPointTBAttr.setY( aLBPosY + aHeightLBStyle / 2 - aHeightTBAttr / 2);
2418dcb2a10SAndre Fischer     mpToolBoxColor->SetPosPixel(aPointTBAttr);
2428dcb2a10SAndre Fischer 
2438dcb2a10SAndre Fischer     aLink = LINK(this, AreaPropertyPanel, ToolBoxColorDropHdl);
2448dcb2a10SAndre Fischer     mpToolBoxColor->SetDropdownClickHdl ( aLink );
2458dcb2a10SAndre Fischer     mpToolBoxColor->SetSelectHdl ( aLink );
2468dcb2a10SAndre Fischer 
2478dcb2a10SAndre Fischer     //add end
2488dcb2a10SAndre Fischer     mpLBTransType->SetSelectHdl(LINK(this, AreaPropertyPanel, ChangeTrgrTypeHdl_Impl));
2498dcb2a10SAndre Fischer     mpLBTransType->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Transparency")));    //wj acc
2508dcb2a10SAndre Fischer 
2518dcb2a10SAndre Fischer     mpMTRTransparent->SetValue( 50 );
2528dcb2a10SAndre Fischer     mpMTRTransparent->SetModifyHdl(LINK(this, AreaPropertyPanel, ModifyTransparentHdl_Impl));
2538dcb2a10SAndre Fischer     mpMTRTransparent->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Transparency")));    //wj acc
2548dcb2a10SAndre Fischer 
2558dcb2a10SAndre Fischer     mpBTNGradient->SetItemBits( TBI_BTX_GRADIENT, mpBTNGradient->GetItemBits( TBI_BTX_GRADIENT ) | TIB_DROPDOWNONLY );
2568dcb2a10SAndre Fischer     aLink = LINK( this, AreaPropertyPanel, ClickTrGrHdl_Impl );
2578dcb2a10SAndre Fischer     mpBTNGradient->SetDropdownClickHdl( aLink );
2588dcb2a10SAndre Fischer     mpBTNGradient->SetSelectHdl( aLink );
2598dcb2a10SAndre Fischer     aTbxSize = mpBTNGradient->CalcWindowSizePixel();
2608dcb2a10SAndre Fischer     mpBTNGradient->SetOutputSizePixel( aTbxSize );
2618dcb2a10SAndre Fischer     mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,maImgLinear);
2628dcb2a10SAndre Fischer     mpBTNGradient->SetQuickHelpText(TBI_BTX_GRADIENT, String(SVX_RES(STR_HELP_GRADIENT)));    //wj acc
2638dcb2a10SAndre Fischer     mpBTNGradient->Hide();
2648dcb2a10SAndre Fischer 
2658dcb2a10SAndre Fischer     long aHeightLBTrans = mpLBTransType->GetSizePixel().getHeight();
2668dcb2a10SAndre Fischer     Point aPointLB = mpLBTransType->GetPosPixel();
2678dcb2a10SAndre Fischer     long aPosY = aPointLB.getY();
2688dcb2a10SAndre Fischer 
2698dcb2a10SAndre Fischer     Point aPointMetric = mpMTRTransparent->GetPosPixel();
2708dcb2a10SAndre Fischer     Point aPointTB = mpMTRTransparent->GetPosPixel();
2718dcb2a10SAndre Fischer     long aHeightMetric = mpMTRTransparent->GetSizePixel().getHeight();
2728dcb2a10SAndre Fischer     long aHeightTool = mpBTNGradient->GetSizePixel().getHeight();
2738dcb2a10SAndre Fischer     aPointMetric.setY(aPosY+aHeightLBTrans/2-aHeightMetric/2);
2748dcb2a10SAndre Fischer     aPointTB.setY(aPosY+aHeightLBTrans/2-aHeightTool/2);
2758dcb2a10SAndre Fischer     aPointTB.setX(aPointTB.getX()+3);
2768dcb2a10SAndre Fischer     mpMTRTransparent->SetPosPixel(aPointMetric);
2778dcb2a10SAndre Fischer     mpBTNGradient->SetPosPixel(aPointTB);
2788dcb2a10SAndre Fischer 
2798dcb2a10SAndre Fischer     mpLbFillType->SetAccessibleRelationLabeledBy(mpColorTextFT.get());
2808dcb2a10SAndre Fischer     mpLbFillAttr->SetAccessibleRelationLabeledBy(mpLbFillAttr.get());
2818dcb2a10SAndre Fischer     mpToolBoxColor->SetAccessibleRelationLabeledBy(mpToolBoxColor.get());
2828dcb2a10SAndre Fischer     mpLBTransType->SetAccessibleRelationLabeledBy(mpTrspTextFT.get());
2838dcb2a10SAndre Fischer     mpMTRTransparent->SetAccessibleRelationLabeledBy(mpMTRTransparent.get());
2848dcb2a10SAndre Fischer     mpBTNGradient->SetAccessibleRelationLabeledBy(mpBTNGradient.get());
2858dcb2a10SAndre Fischer 
2868dcb2a10SAndre Fischer     SetupIcons();
2878dcb2a10SAndre Fischer }
2888dcb2a10SAndre Fischer 
2898dcb2a10SAndre Fischer 
2908dcb2a10SAndre Fischer 
2918dcb2a10SAndre Fischer IMPL_LINK( AreaPropertyPanel, SelectFillTypeHdl, ListBox *, pToolBox )
2928dcb2a10SAndre Fischer {
2938dcb2a10SAndre Fischer 	XFillStyle  eXFS = (XFillStyle)mpLbFillType->GetSelectEntryPos();
2948dcb2a10SAndre Fischer 
2958dcb2a10SAndre Fischer 	if( (XFillStyle) meLastXFS != eXFS )
2968dcb2a10SAndre Fischer 	{
2978dcb2a10SAndre Fischer 			mpLbFillAttr->Clear();
2988dcb2a10SAndre Fischer 			SfxObjectShell* pSh = SfxObjectShell::Current();
2998dcb2a10SAndre Fischer 			XFillStyleItem aXFillStyleItem( eXFS );
3008dcb2a10SAndre Fischer 			GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_STYLE, SFX_CALLMODE_RECORD, &aXFillStyleItem, 0L);
3018dcb2a10SAndre Fischer 
3028dcb2a10SAndre Fischer 			switch( eXFS )
3038dcb2a10SAndre Fischer 			{
3048dcb2a10SAndre Fischer 			case XFILL_NONE:
3058dcb2a10SAndre Fischer 				{
3068dcb2a10SAndre Fischer 					mpLbFillAttr->Show();
3078dcb2a10SAndre Fischer 					mpToolBoxColor->Hide();
3088dcb2a10SAndre Fischer 					mbTBShow = false;
3098dcb2a10SAndre Fischer 					mpLbFillType->Selected();
3108dcb2a10SAndre Fischer 					mpLbFillAttr->Disable();
3118dcb2a10SAndre Fischer 				}
3128dcb2a10SAndre Fischer 				break;
3138dcb2a10SAndre Fischer 
3148dcb2a10SAndre Fischer 			case XFILL_SOLID:
3158dcb2a10SAndre Fischer 				{
3168dcb2a10SAndre Fischer 					mpLbFillAttr->Hide();
3178dcb2a10SAndre Fischer 					mpToolBoxColor->Show();
3188dcb2a10SAndre Fischer 					mbTBShow = true;
3198dcb2a10SAndre Fischer 					String aTmpStr;
3208dcb2a10SAndre Fischer 					Color aColor = maLastColor;
3218dcb2a10SAndre Fischer 					XFillColorItem aXFillColorItem( aTmpStr, aColor );
3228dcb2a10SAndre Fischer 					GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_COLOR, SFX_CALLMODE_RECORD, &aXFillColorItem, 0L);
3238dcb2a10SAndre Fischer 				}
3248dcb2a10SAndre Fischer 				break;
3258dcb2a10SAndre Fischer 
3268dcb2a10SAndre Fischer 			case XFILL_GRADIENT:
3278dcb2a10SAndre Fischer 				{
3288dcb2a10SAndre Fischer 					mpLbFillAttr->Show();
3298dcb2a10SAndre Fischer 					mpToolBoxColor->Hide();
3308dcb2a10SAndre Fischer 					mbTBShow = false;
3318dcb2a10SAndre Fischer 					if ( pSh && pSh->GetItem( SID_GRADIENT_LIST ) )
3328dcb2a10SAndre Fischer 					{
3338dcb2a10SAndre Fischer 						//
3348dcb2a10SAndre Fischer 						if(mpLbFillAttr->GetEntryCount() == 0)
3358dcb2a10SAndre Fischer 						{
3368dcb2a10SAndre Fischer 							SvxGradientListItem aItem( *(const SvxGradientListItem*)(
3378dcb2a10SAndre Fischer 							pSh->GetItem( SID_GRADIENT_LIST ) ) );
3388dcb2a10SAndre Fischer 							mpLbFillAttr->Enable();
3398dcb2a10SAndre Fischer 							mpLbFillAttr->Clear();
3408dcb2a10SAndre Fischer 							mpLbFillAttr->Fill( aItem.GetGradientList() );
3418dcb2a10SAndre Fischer 						}
3428dcb2a10SAndre Fischer 
3438dcb2a10SAndre Fischer 						if ( mnLastPosGradient != LISTBOX_ENTRY_NOTFOUND)
3448dcb2a10SAndre Fischer 						{
3458dcb2a10SAndre Fischer 							SvxGradientListItem aItem( *(const SvxGradientListItem*)( pSh->GetItem( SID_GRADIENT_LIST ) ) );
3468dcb2a10SAndre Fischer 							if ( mnLastPosGradient < aItem.GetGradientList()->Count() )
3478dcb2a10SAndre Fischer 							{
3488dcb2a10SAndre Fischer 								XGradient aGradient = aItem.GetGradientList()->GetGradient( mnLastPosGradient )->GetGradient();
3498dcb2a10SAndre Fischer 								XFillGradientItem aXFillGradientItem( mpLbFillAttr->GetEntry(mnLastPosGradient), aGradient );
3508dcb2a10SAndre Fischer 								GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_GRADIENT, SFX_CALLMODE_RECORD, &aXFillGradientItem, 0L);
3518dcb2a10SAndre Fischer 								mpLbFillAttr->SelectEntryPos(mnLastPosGradient);	//add
3528dcb2a10SAndre Fischer 							}
3538dcb2a10SAndre Fischer 						}
3548dcb2a10SAndre Fischer 					}
3558dcb2a10SAndre Fischer 					else
3568dcb2a10SAndre Fischer 						mpLbFillAttr->Disable();
3578dcb2a10SAndre Fischer 				}
3588dcb2a10SAndre Fischer 				break;
3598dcb2a10SAndre Fischer 
3608dcb2a10SAndre Fischer 			case XFILL_HATCH:
3618dcb2a10SAndre Fischer 				{
3628dcb2a10SAndre Fischer 					mpLbFillAttr->Show();
3638dcb2a10SAndre Fischer 					mpToolBoxColor->Hide();
3648dcb2a10SAndre Fischer 					mbTBShow = false;
3658dcb2a10SAndre Fischer 					if ( pSh && pSh->GetItem( SID_HATCH_LIST ) )
3668dcb2a10SAndre Fischer 					{
3678dcb2a10SAndre Fischer 						//
3688dcb2a10SAndre Fischer 						if(mpLbFillAttr->GetEntryCount() == 0)
3698dcb2a10SAndre Fischer 						{
3708dcb2a10SAndre Fischer 							SvxHatchListItem aItem( *(const SvxHatchListItem*)(
3718dcb2a10SAndre Fischer 								pSh->GetItem( SID_HATCH_LIST ) ) );
3728dcb2a10SAndre Fischer 							mpLbFillAttr->Enable();
3738dcb2a10SAndre Fischer 							mpLbFillAttr->Clear();
3748dcb2a10SAndre Fischer 							mpLbFillAttr->Fill( aItem.GetHatchList() );
3758dcb2a10SAndre Fischer 						}
3768dcb2a10SAndre Fischer 
3778dcb2a10SAndre Fischer 						if ( mnLastPosHatch != LISTBOX_ENTRY_NOTFOUND )
3788dcb2a10SAndre Fischer 						{
3798dcb2a10SAndre Fischer 							SvxHatchListItem aItem( *(const SvxHatchListItem*)( pSh->GetItem( SID_HATCH_LIST ) ) );
3808dcb2a10SAndre Fischer 							if ( mnLastPosHatch < aItem.GetHatchList()->Count() )
3818dcb2a10SAndre Fischer 							{
3828dcb2a10SAndre Fischer 								XHatch aHatch = aItem.GetHatchList()->GetHatch( mnLastPosHatch )->GetHatch();
3838dcb2a10SAndre Fischer 								XFillHatchItem aXFillHatchItem( mpLbFillAttr->GetSelectEntry(), aHatch );
3848dcb2a10SAndre Fischer 								GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_HATCH, SFX_CALLMODE_RECORD, &aXFillHatchItem, 0L);
3858dcb2a10SAndre Fischer 								mpLbFillAttr->SelectEntryPos(mnLastPosHatch); //add
3868dcb2a10SAndre Fischer 							}
3878dcb2a10SAndre Fischer 						}
3888dcb2a10SAndre Fischer 					}
3898dcb2a10SAndre Fischer 					else
3908dcb2a10SAndre Fischer 						mpLbFillAttr->Disable();
3918dcb2a10SAndre Fischer 				}
3928dcb2a10SAndre Fischer 				break;
3938dcb2a10SAndre Fischer 
3948dcb2a10SAndre Fischer 			case XFILL_BITMAP:
3958dcb2a10SAndre Fischer 				{
3968dcb2a10SAndre Fischer 					mpLbFillAttr->Show();
3978dcb2a10SAndre Fischer 					mpToolBoxColor->Hide();
3988dcb2a10SAndre Fischer 					mbTBShow = false;
3998dcb2a10SAndre Fischer 					if ( pSh && pSh->GetItem( SID_BITMAP_LIST ) )
4008dcb2a10SAndre Fischer 					{
4018dcb2a10SAndre Fischer 						//
4028dcb2a10SAndre Fischer 						if(mpLbFillAttr->GetEntryCount() == 0)
4038dcb2a10SAndre Fischer 						{
4048dcb2a10SAndre Fischer 							SvxBitmapListItem aItem( *(const SvxBitmapListItem*)(
4058dcb2a10SAndre Fischer 								pSh->GetItem( SID_BITMAP_LIST ) ) );
4068dcb2a10SAndre Fischer 							mpLbFillAttr->Enable();
4078dcb2a10SAndre Fischer 							mpLbFillAttr->Clear();
4088dcb2a10SAndre Fischer 							mpLbFillAttr->Fill( aItem.GetBitmapList() );
4098dcb2a10SAndre Fischer 						}
4108dcb2a10SAndre Fischer 
4118dcb2a10SAndre Fischer 						if ( mnLastPosBitmap != LISTBOX_ENTRY_NOTFOUND )
4128dcb2a10SAndre Fischer 						{
4138dcb2a10SAndre Fischer 							SvxBitmapListItem aItem( *(const SvxBitmapListItem*)( pSh->GetItem( SID_BITMAP_LIST ) ) );
4148dcb2a10SAndre Fischer 							if ( mnLastPosBitmap < aItem.GetBitmapList()->Count() )
4158dcb2a10SAndre Fischer 							{
4168dcb2a10SAndre Fischer                                 const XBitmapEntry* pXBitmapEntry = aItem.GetBitmapList()->GetBitmap(mnLastPosBitmap);
4178dcb2a10SAndre Fischer 								XFillBitmapItem aXFillBitmapItem( mpLbFillAttr->GetSelectEntry(), pXBitmapEntry->GetGraphicObject() );
4188dcb2a10SAndre Fischer 								GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_BITMAP, SFX_CALLMODE_RECORD, &aXFillBitmapItem, 0L);
4198dcb2a10SAndre Fischer 								mpLbFillAttr->SelectEntryPos(mnLastPosBitmap); //add
4208dcb2a10SAndre Fischer 							}
4218dcb2a10SAndre Fischer 						}
4228dcb2a10SAndre Fischer 					}
4238dcb2a10SAndre Fischer 					else
4248dcb2a10SAndre Fischer 						mpLbFillAttr->Disable();
4258dcb2a10SAndre Fischer 				}
4268dcb2a10SAndre Fischer 				break;
4278dcb2a10SAndre Fischer 			}
4288dcb2a10SAndre Fischer 			meLastXFS = (sal_uInt16)eXFS;
4298dcb2a10SAndre Fischer 			if( eXFS != XFILL_NONE )
4308dcb2a10SAndre Fischer 			{
4318dcb2a10SAndre Fischer 				if ( pToolBox )
4328dcb2a10SAndre Fischer 					mpLbFillType->Selected();
4338dcb2a10SAndre Fischer 			}
4348dcb2a10SAndre Fischer 	}
4358dcb2a10SAndre Fischer 	return 0;
4368dcb2a10SAndre Fischer }
4378dcb2a10SAndre Fischer 
4388dcb2a10SAndre Fischer 
4398dcb2a10SAndre Fischer 
4408dcb2a10SAndre Fischer IMPL_LINK( AreaPropertyPanel, SelectFillAttrHdl, ListBox*, pToolBox )
4418dcb2a10SAndre Fischer {
4428dcb2a10SAndre Fischer     XFillStyle eXFS = (XFillStyle)mpLbFillType->GetSelectEntryPos();
4438dcb2a10SAndre Fischer     XFillStyleItem aXFillStyleItem( eXFS );
4448dcb2a10SAndre Fischer     SfxObjectShell* pSh = SfxObjectShell::Current();
4458dcb2a10SAndre Fischer 
4468dcb2a10SAndre Fischer     if(pToolBox)
4478dcb2a10SAndre Fischer 	{
4488dcb2a10SAndre Fischer 		if( (XFillStyle) meLastXFS != eXFS )
4498dcb2a10SAndre Fischer         {
4508dcb2a10SAndre Fischer 			GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_STYLE, SFX_CALLMODE_RECORD, &aXFillStyleItem, 0L); //Added  20090909
4518dcb2a10SAndre Fischer         }
4528dcb2a10SAndre Fischer 
4538dcb2a10SAndre Fischer 		switch( eXFS )
4548dcb2a10SAndre Fischer 		{
4558dcb2a10SAndre Fischer 		case XFILL_SOLID:
4568dcb2a10SAndre Fischer 			//{
4578dcb2a10SAndre Fischer 			//	//String aTmpStr = mpLbFillAttr->GetSelectEntry();
4588dcb2a10SAndre Fischer 			//	//Color aColor = mpLbFillAttr->GetSelectEntryColor();
4598dcb2a10SAndre Fischer 			//	//if(aColor.GetColor() == 0 && aTmpStr.Equals(String::CreateFromAscii("")))
4608dcb2a10SAndre Fischer 			//	String aTmpStr;
4618dcb2a10SAndre Fischer 			//	Color aColor = maLastColor;
4628dcb2a10SAndre Fischer 			//	XFillColorItem aXFillColorItem( aTmpStr, aColor );
4638dcb2a10SAndre Fischer 			//	GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_COLOR, SFX_CALLMODE_RECORD, &aXFillColorItem, 0L);
4648dcb2a10SAndre Fischer 			//	maLastColor = aColor;
4658dcb2a10SAndre Fischer 			//}
4668dcb2a10SAndre Fischer 			break;
4678dcb2a10SAndre Fischer 
4688dcb2a10SAndre Fischer 		case XFILL_GRADIENT:
4698dcb2a10SAndre Fischer 			{
4708dcb2a10SAndre Fischer 				sal_uInt16 nPos = mpLbFillAttr->GetSelectEntryPos();
4718dcb2a10SAndre Fischer 				if( nPos == LISTBOX_ENTRY_NOTFOUND )
4728dcb2a10SAndre Fischer 					nPos = mnLastPosGradient;
4738dcb2a10SAndre Fischer 
4748dcb2a10SAndre Fischer 				if ( nPos != LISTBOX_ENTRY_NOTFOUND && pSh && pSh->GetItem( SID_GRADIENT_LIST ) )
4758dcb2a10SAndre Fischer 				{
4768dcb2a10SAndre Fischer 					SvxGradientListItem aItem( *(const SvxGradientListItem*)( pSh->GetItem( SID_GRADIENT_LIST ) ) );
4778dcb2a10SAndre Fischer 					if ( nPos < aItem.GetGradientList()->Count() )
4788dcb2a10SAndre Fischer 					{
4798dcb2a10SAndre Fischer 						XGradient aGradient = aItem.GetGradientList()->GetGradient( nPos )->GetGradient();
4808dcb2a10SAndre Fischer 						XFillGradientItem aXFillGradientItem( mpLbFillAttr->GetSelectEntry(), aGradient );
4818dcb2a10SAndre Fischer 						GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_GRADIENT, SFX_CALLMODE_RECORD, &aXFillGradientItem, 0L);
4828dcb2a10SAndre Fischer 					}
4838dcb2a10SAndre Fischer 				}
4848dcb2a10SAndre Fischer 				if(nPos != LISTBOX_ENTRY_NOTFOUND)
4858dcb2a10SAndre Fischer 					mnLastPosGradient = nPos;
4868dcb2a10SAndre Fischer 			}
4878dcb2a10SAndre Fischer 			break;
4888dcb2a10SAndre Fischer 
4898dcb2a10SAndre Fischer 		case XFILL_HATCH:
4908dcb2a10SAndre Fischer 			{
4918dcb2a10SAndre Fischer 				sal_uInt16 nPos = mpLbFillAttr->GetSelectEntryPos();
4928dcb2a10SAndre Fischer 				if( nPos == LISTBOX_ENTRY_NOTFOUND )
4938dcb2a10SAndre Fischer 					nPos = mnLastPosHatch;
4948dcb2a10SAndre Fischer 				if ( nPos != LISTBOX_ENTRY_NOTFOUND && pSh && pSh->GetItem( SID_HATCH_LIST ) )
4958dcb2a10SAndre Fischer 				{
4968dcb2a10SAndre Fischer 					SvxHatchListItem aItem( *(const SvxHatchListItem*)( pSh->GetItem( SID_HATCH_LIST ) ) );
4978dcb2a10SAndre Fischer 					if ( nPos < aItem.GetHatchList()->Count() )
4988dcb2a10SAndre Fischer 					{
4998dcb2a10SAndre Fischer 						XHatch aHatch = aItem.GetHatchList()->GetHatch( nPos )->GetHatch();
5008dcb2a10SAndre Fischer 						XFillHatchItem aXFillHatchItem( mpLbFillAttr->GetSelectEntry(), aHatch );
5018dcb2a10SAndre Fischer 						GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_HATCH, SFX_CALLMODE_RECORD, &aXFillHatchItem, 0L);
5028dcb2a10SAndre Fischer 					}
5038dcb2a10SAndre Fischer 				}
5048dcb2a10SAndre Fischer 				if(nPos != LISTBOX_ENTRY_NOTFOUND)
5058dcb2a10SAndre Fischer 					mnLastPosHatch = nPos;
5068dcb2a10SAndre Fischer 			}
5078dcb2a10SAndre Fischer 			break;
5088dcb2a10SAndre Fischer 
5098dcb2a10SAndre Fischer 		case XFILL_BITMAP:
5108dcb2a10SAndre Fischer 			{
5118dcb2a10SAndre Fischer 				sal_uInt16 nPos = mpLbFillAttr->GetSelectEntryPos();
5128dcb2a10SAndre Fischer 				if( nPos == LISTBOX_ENTRY_NOTFOUND )
5138dcb2a10SAndre Fischer 					nPos = mnLastPosBitmap;
5148dcb2a10SAndre Fischer 				if ( nPos != LISTBOX_ENTRY_NOTFOUND && pSh && pSh->GetItem( SID_BITMAP_LIST ) )
5158dcb2a10SAndre Fischer 				{
5168dcb2a10SAndre Fischer 					SvxBitmapListItem aItem( *(const SvxBitmapListItem*)( pSh->GetItem( SID_BITMAP_LIST ) ) );
5178dcb2a10SAndre Fischer 					if ( nPos < aItem.GetBitmapList()->Count() )
5188dcb2a10SAndre Fischer 					{
5198dcb2a10SAndre Fischer                         const XBitmapEntry* pXBitmapEntry = aItem.GetBitmapList()->GetBitmap(nPos);
5208dcb2a10SAndre Fischer 						XFillBitmapItem aXFillBitmapItem( mpLbFillAttr->GetSelectEntry(), pXBitmapEntry->GetGraphicObject() );
5218dcb2a10SAndre Fischer 						GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_BITMAP, SFX_CALLMODE_RECORD, &aXFillBitmapItem, 0L);
5228dcb2a10SAndre Fischer 					}
5238dcb2a10SAndre Fischer 				}
5248dcb2a10SAndre Fischer 				if(nPos != LISTBOX_ENTRY_NOTFOUND)
5258dcb2a10SAndre Fischer 					mnLastPosBitmap = nPos;
5268dcb2a10SAndre Fischer 			}
5278dcb2a10SAndre Fischer 			break;
5288dcb2a10SAndre Fischer 
5298dcb2a10SAndre Fischer                     default:
5308dcb2a10SAndre Fischer                         break;
5318dcb2a10SAndre Fischer 		}
5328dcb2a10SAndre Fischer 	}
5338dcb2a10SAndre Fischer 	return 0;
5348dcb2a10SAndre Fischer }
5358dcb2a10SAndre Fischer 
5368dcb2a10SAndre Fischer 
5378dcb2a10SAndre Fischer //add  for color picker
5388dcb2a10SAndre Fischer 
5398dcb2a10SAndre Fischer IMPL_LINK(AreaPropertyPanel, ToolBoxColorDropHdl, ToolBox*, pToolBox)
5408dcb2a10SAndre Fischer {
5418dcb2a10SAndre Fischer     sal_uInt16 nId = pToolBox->GetCurItemId();
5428dcb2a10SAndre Fischer 
5438dcb2a10SAndre Fischer     if(nId == TBI_COLOR)
5448dcb2a10SAndre Fischer     {
5458dcb2a10SAndre Fischer         maColorPopup.Show(*pToolBox);
5468dcb2a10SAndre Fischer 	    if (mpColorItem)
5478dcb2a10SAndre Fischer             maColorPopup.SetCurrentColor(mpColorItem->GetColorValue(), mbColorAvail);
5488dcb2a10SAndre Fischer 		else
5498dcb2a10SAndre Fischer 			maColorPopup.SetCurrentColor(COL_WHITE, false);
5508dcb2a10SAndre Fischer 	}
5518dcb2a10SAndre Fischer 
5528dcb2a10SAndre Fischer     return 0;
5538dcb2a10SAndre Fischer }
5548dcb2a10SAndre Fischer 
5558dcb2a10SAndre Fischer 
5568dcb2a10SAndre Fischer 
5578dcb2a10SAndre Fischer void AreaPropertyPanel::SetColor (
5588dcb2a10SAndre Fischer     const String& rsColorName,
5598dcb2a10SAndre Fischer     const Color aColor)
5608dcb2a10SAndre Fischer {
5618dcb2a10SAndre Fischer     XFillColorItem aXFillColorItem (rsColorName, aColor);
5628dcb2a10SAndre Fischer     mpBindings->GetDispatcher()->Execute(SID_ATTR_FILL_COLOR, SFX_CALLMODE_RECORD, &aXFillColorItem, 0L);
5638dcb2a10SAndre Fischer     maLastColor = aColor;
5648dcb2a10SAndre Fischer }
5658dcb2a10SAndre Fischer 
5668dcb2a10SAndre Fischer 
5678dcb2a10SAndre Fischer 
5688dcb2a10SAndre Fischer 
5698dcb2a10SAndre Fischer PopupControl* AreaPropertyPanel::CreateTransparencyGradientControl (PopupContainer* pParent)
5708dcb2a10SAndre Fischer {
5718dcb2a10SAndre Fischer     return new AreaTransparencyGradientControl(pParent, *this);
5728dcb2a10SAndre Fischer }
5738dcb2a10SAndre Fischer 
5748dcb2a10SAndre Fischer 
5758dcb2a10SAndre Fischer 
5768dcb2a10SAndre Fischer 
5778dcb2a10SAndre Fischer PopupControl* AreaPropertyPanel::CreateColorPopupControl (PopupContainer* pParent)
5788dcb2a10SAndre Fischer {
5798dcb2a10SAndre Fischer     return new ColorControl(
5808dcb2a10SAndre Fischer         pParent,
5818dcb2a10SAndre Fischer         mpBindings,
5828dcb2a10SAndre Fischer         SVX_RES(RID_POPUPPANEL_AERAPAGE_COLOR),
5838dcb2a10SAndre Fischer         SVX_RES(VS_COLOR),
5848dcb2a10SAndre Fischer         ::boost::bind(&AreaPropertyPanel::GetLastColor, this),
5858dcb2a10SAndre Fischer         ::boost::bind(&AreaPropertyPanel::SetColor, this, _1,_2),
5868dcb2a10SAndre Fischer         pParent,
5878dcb2a10SAndre Fischer         0);
5888dcb2a10SAndre Fischer }
5898dcb2a10SAndre Fischer 
5908dcb2a10SAndre Fischer 
5918dcb2a10SAndre Fischer 
5928dcb2a10SAndre Fischer 
5938dcb2a10SAndre Fischer void AreaPropertyPanel::SetupIcons(void)
5948dcb2a10SAndre Fischer {
5958dcb2a10SAndre Fischer     if(Theme::GetBoolean(Theme::Bool_UseSymphonyIcons))
5968dcb2a10SAndre Fischer     {
5978dcb2a10SAndre Fischer         // todo
5988dcb2a10SAndre Fischer     }
5998dcb2a10SAndre Fischer     else
6008dcb2a10SAndre Fischer     {
6018dcb2a10SAndre Fischer         // todo
6028dcb2a10SAndre Fischer     }
6038dcb2a10SAndre Fischer }
6048dcb2a10SAndre Fischer 
6058dcb2a10SAndre Fischer 
6068dcb2a10SAndre Fischer 
6078dcb2a10SAndre Fischer AreaPropertyPanel* AreaPropertyPanel::Create (
6088dcb2a10SAndre Fischer     Window* pParent,
6098dcb2a10SAndre Fischer     const cssu::Reference<css::frame::XFrame>& rxFrame,
6108dcb2a10SAndre Fischer     SfxBindings* pBindings)
6118dcb2a10SAndre Fischer {
6128dcb2a10SAndre Fischer     if (pParent == NULL)
6138dcb2a10SAndre Fischer         throw lang::IllegalArgumentException(A2S("no parent Window given to AreaPropertyPanel::Create"), NULL, 0);
6148dcb2a10SAndre Fischer     if ( ! rxFrame.is())
6158dcb2a10SAndre Fischer         throw lang::IllegalArgumentException(A2S("no XFrame given to AreaPropertyPanel::Create"), NULL, 1);
6168dcb2a10SAndre Fischer     if (pBindings == NULL)
6178dcb2a10SAndre Fischer         throw lang::IllegalArgumentException(A2S("no SfxBindings given to AreaPropertyPanel::Create"), NULL, 2);
6188dcb2a10SAndre Fischer 
6198dcb2a10SAndre Fischer     return new AreaPropertyPanel(
6208dcb2a10SAndre Fischer         pParent,
6218dcb2a10SAndre Fischer         rxFrame,
6228dcb2a10SAndre Fischer         pBindings);
6238dcb2a10SAndre Fischer }
6248dcb2a10SAndre Fischer 
6258dcb2a10SAndre Fischer 
6268dcb2a10SAndre Fischer 
6278dcb2a10SAndre Fischer void AreaPropertyPanel::DataChanged(
6288dcb2a10SAndre Fischer     const DataChangedEvent& rEvent)
6298dcb2a10SAndre Fischer {
6308dcb2a10SAndre Fischer     (void)rEvent;
6318dcb2a10SAndre Fischer 
6328dcb2a10SAndre Fischer     SetupIcons();
6338dcb2a10SAndre Fischer }
6348dcb2a10SAndre Fischer 
6358dcb2a10SAndre Fischer 
6368dcb2a10SAndre Fischer 
6378dcb2a10SAndre Fischer void AreaPropertyPanel::HandleContextChange(
6388dcb2a10SAndre Fischer     const ::sfx2::sidebar::EnumContext aContext)
6398dcb2a10SAndre Fischer {
6408dcb2a10SAndre Fischer     if(maContext == aContext)
6418dcb2a10SAndre Fischer     {
6428dcb2a10SAndre Fischer         // Nothing to do.
6438dcb2a10SAndre Fischer         return;
6448dcb2a10SAndre Fischer     }
6458dcb2a10SAndre Fischer 
6468dcb2a10SAndre Fischer     maContext = aContext;
6478dcb2a10SAndre Fischer 
6488dcb2a10SAndre Fischer 
6498dcb2a10SAndre Fischer 
6508dcb2a10SAndre Fischer     // todo
6518dcb2a10SAndre Fischer }
6528dcb2a10SAndre Fischer 
6538dcb2a10SAndre Fischer 
6548dcb2a10SAndre Fischer 
6558dcb2a10SAndre Fischer void AreaPropertyPanel::ImpUpdateTransparencies()
6568dcb2a10SAndre Fischer {
6578dcb2a10SAndre Fischer     if(mpTransparanceItem.get() || mpFloatTransparenceItem.get())
6588dcb2a10SAndre Fischer     {
6598dcb2a10SAndre Fischer         bool bZeroValue(false);
6608dcb2a10SAndre Fischer 
6618dcb2a10SAndre Fischer         if(mpTransparanceItem.get())
6628dcb2a10SAndre Fischer         {
6638dcb2a10SAndre Fischer             const sal_uInt16 nValue(mpTransparanceItem->GetValue());
6648dcb2a10SAndre Fischer 
6658dcb2a10SAndre Fischer             if(!nValue)
6668dcb2a10SAndre Fischer             {
6678dcb2a10SAndre Fischer                 bZeroValue = true;
6688dcb2a10SAndre Fischer             }
6698dcb2a10SAndre Fischer             else if(nValue <= 100)
6708dcb2a10SAndre Fischer             {
6718dcb2a10SAndre Fischer                 mpLBTransType->Enable();
6728dcb2a10SAndre Fischer                 mpLBTransType->SelectEntryPos(1);
6738dcb2a10SAndre Fischer                 mpBTNGradient->Hide();
6748dcb2a10SAndre Fischer                 mpMTRTransparent->Show();
6758dcb2a10SAndre Fischer                 mpMTRTransparent->Enable();
6768dcb2a10SAndre Fischer                 mpMTRTransparent->SetValue(nValue);
6778dcb2a10SAndre Fischer             }
6788dcb2a10SAndre Fischer 
679*eb6ac606SArmin Le Grand             if(!bZeroValue)
680*eb6ac606SArmin Le Grand             {
6818dcb2a10SAndre Fischer                 maTrGrPopup.Hide();
6828dcb2a10SAndre Fischer             }
683*eb6ac606SArmin Le Grand         }
6848dcb2a10SAndre Fischer 
6858dcb2a10SAndre Fischer         if(bZeroValue && mpFloatTransparenceItem.get())
6868dcb2a10SAndre Fischer         {
6878dcb2a10SAndre Fischer             if(mpFloatTransparenceItem->IsEnabled())
6888dcb2a10SAndre Fischer             {
6898dcb2a10SAndre Fischer                 const XGradient& rGradient = mpFloatTransparenceItem->GetGradientValue();
6908dcb2a10SAndre Fischer                 const bool bHighContrast(GetSettings().GetStyleSettings().GetHighContrastMode());
6918dcb2a10SAndre Fischer                 sal_uInt16 nEntryPos(0);
6928dcb2a10SAndre Fischer                 Image* pImage = 0;
6938dcb2a10SAndre Fischer 
6948dcb2a10SAndre Fischer                 mpLBTransType->Enable();
6958dcb2a10SAndre Fischer                 mpMTRTransparent->Hide();
6968dcb2a10SAndre Fischer                 mpBTNGradient->Enable();
6978dcb2a10SAndre Fischer                 mpBTNGradient->Show();
6988dcb2a10SAndre Fischer 
6998dcb2a10SAndre Fischer                 switch(rGradient.GetGradientStyle())
7008dcb2a10SAndre Fischer                 {
7018dcb2a10SAndre Fischer                     case XGRAD_LINEAR:
7028dcb2a10SAndre Fischer                     {
7038dcb2a10SAndre Fischer                         nEntryPos = 2;
7048dcb2a10SAndre Fischer                         pImage = bHighContrast ? &maImgLinearH : &maImgLinear;
7058dcb2a10SAndre Fischer                         break;
7068dcb2a10SAndre Fischer                     }
7078dcb2a10SAndre Fischer                     case XGRAD_AXIAL:
7088dcb2a10SAndre Fischer                     {
7098dcb2a10SAndre Fischer                         nEntryPos = 3;
7108dcb2a10SAndre Fischer                         pImage = bHighContrast ? &maImgAxialH : &maImgAxial;
7118dcb2a10SAndre Fischer                         break;
7128dcb2a10SAndre Fischer                     }
7138dcb2a10SAndre Fischer                     case XGRAD_RADIAL:
7148dcb2a10SAndre Fischer                     {
7158dcb2a10SAndre Fischer                         nEntryPos = 4;
7168dcb2a10SAndre Fischer                         pImage = bHighContrast ? &maImgRadialH : &maImgRadial;
7178dcb2a10SAndre Fischer                         break;
7188dcb2a10SAndre Fischer                     }
7198dcb2a10SAndre Fischer                     case XGRAD_ELLIPTICAL:
7208dcb2a10SAndre Fischer                     {
7218dcb2a10SAndre Fischer                         nEntryPos = 5;
7228dcb2a10SAndre Fischer                         pImage = bHighContrast ? &maImgElliH : &maImgElli;
7238dcb2a10SAndre Fischer                         break;
7248dcb2a10SAndre Fischer                     }
7258dcb2a10SAndre Fischer                     case XGRAD_SQUARE:
7268dcb2a10SAndre Fischer                     {
7278dcb2a10SAndre Fischer                         nEntryPos = 6;
7288dcb2a10SAndre Fischer                         pImage = bHighContrast ? &maImgQuadH : &maImgQuad;
7298dcb2a10SAndre Fischer                         break;
7308dcb2a10SAndre Fischer                     }
7318dcb2a10SAndre Fischer                     case XGRAD_RECT:
7328dcb2a10SAndre Fischer                     {
7338dcb2a10SAndre Fischer                         nEntryPos = 7;
7348dcb2a10SAndre Fischer                         pImage = bHighContrast ? &maImgSquareH : &maImgSquare;
7358dcb2a10SAndre Fischer                         break;
7368dcb2a10SAndre Fischer                     }
7378dcb2a10SAndre Fischer                 }
7388dcb2a10SAndre Fischer 
7398dcb2a10SAndre Fischer                 mpLBTransType->SelectEntryPos(nEntryPos);
7408dcb2a10SAndre Fischer                 mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT, *pImage);
7418dcb2a10SAndre Fischer                 bZeroValue = false;
7428dcb2a10SAndre Fischer             }
7438dcb2a10SAndre Fischer             else
7448dcb2a10SAndre Fischer             {
7458dcb2a10SAndre Fischer                 bZeroValue = true;
7468dcb2a10SAndre Fischer             }
7478dcb2a10SAndre Fischer         }
7488dcb2a10SAndre Fischer 
7498dcb2a10SAndre Fischer         if(bZeroValue)
7508dcb2a10SAndre Fischer         {
7518dcb2a10SAndre Fischer             mpLBTransType->Enable();
7528dcb2a10SAndre Fischer             mpLBTransType->SelectEntryPos(0);
7538dcb2a10SAndre Fischer             mpBTNGradient->Hide();
7548dcb2a10SAndre Fischer             mpMTRTransparent->Enable();
7558dcb2a10SAndre Fischer             mpMTRTransparent->Show();
7568dcb2a10SAndre Fischer             mpMTRTransparent->SetValue(0);
7578dcb2a10SAndre Fischer         }
7588dcb2a10SAndre Fischer     }
7598dcb2a10SAndre Fischer     else
7608dcb2a10SAndre Fischer     {
7618dcb2a10SAndre Fischer         // no transparency at all
7628dcb2a10SAndre Fischer         mpLBTransType->SetNoSelection();
7638dcb2a10SAndre Fischer         mpMTRTransparent->Disable();
7648dcb2a10SAndre Fischer         mpMTRTransparent->Show();
7658dcb2a10SAndre Fischer         mpBTNGradient->Disable();
7668dcb2a10SAndre Fischer         mpBTNGradient->Hide();
7678dcb2a10SAndre Fischer     }
7688dcb2a10SAndre Fischer }
7698dcb2a10SAndre Fischer 
770*eb6ac606SArmin Le Grand 
771*eb6ac606SArmin Le Grand 
7728dcb2a10SAndre Fischer void AreaPropertyPanel::NotifyItemUpdate(
7738dcb2a10SAndre Fischer     sal_uInt16 nSID,
7748dcb2a10SAndre Fischer     SfxItemState eState,
7758dcb2a10SAndre Fischer     const SfxPoolItem* pState)
7768dcb2a10SAndre Fischer {
7778dcb2a10SAndre Fischer 	XFillStyle eXFS;
7788dcb2a10SAndre Fischer 	SfxObjectShell* pSh = SfxObjectShell::Current();
7798dcb2a10SAndre Fischer     bool bFillTransparenceChanged(false);
7808dcb2a10SAndre Fischer 
7818dcb2a10SAndre Fischer     if(SID_ATTR_FILL_TRANSPARENCE == nSID)
7828dcb2a10SAndre Fischer     {
7838dcb2a10SAndre Fischer         bFillTransparenceChanged = true;
7848dcb2a10SAndre Fischer 
7858dcb2a10SAndre Fischer         if(eState >= SFX_ITEM_AVAILABLE)
7868dcb2a10SAndre Fischer         {
7878dcb2a10SAndre Fischer             const SfxUInt16Item* pItem = dynamic_cast< const SfxUInt16Item* >(pState);
7888dcb2a10SAndre Fischer 
7898dcb2a10SAndre Fischer             if(pItem && (!mpTransparanceItem || *pItem != *mpTransparanceItem))
7908dcb2a10SAndre Fischer             {
7918dcb2a10SAndre Fischer                 mpTransparanceItem.reset((SfxUInt16Item*)pItem->Clone());
7928dcb2a10SAndre Fischer             }
7938dcb2a10SAndre Fischer             else
7948dcb2a10SAndre Fischer             {
7958dcb2a10SAndre Fischer                 mpTransparanceItem.reset();
7968dcb2a10SAndre Fischer             }
7978dcb2a10SAndre Fischer         }
7988dcb2a10SAndre Fischer         else
7998dcb2a10SAndre Fischer         {
8008dcb2a10SAndre Fischer             mpTransparanceItem.reset();
8018dcb2a10SAndre Fischer         }
8028dcb2a10SAndre Fischer     }
8038dcb2a10SAndre Fischer     else if(SID_ATTR_FILL_FLOATTRANSPARENCE == nSID)
8048dcb2a10SAndre Fischer     {
8058dcb2a10SAndre Fischer         bFillTransparenceChanged = true;
8068dcb2a10SAndre Fischer 
8078dcb2a10SAndre Fischer         if(eState >= SFX_ITEM_AVAILABLE)
8088dcb2a10SAndre Fischer         {
8098dcb2a10SAndre Fischer             const XFillFloatTransparenceItem* pItem = dynamic_cast< const XFillFloatTransparenceItem* >(pState);
8108dcb2a10SAndre Fischer 
8118dcb2a10SAndre Fischer             if(pItem && (!mpFloatTransparenceItem || *pItem != *mpFloatTransparenceItem))
8128dcb2a10SAndre Fischer             {
8138dcb2a10SAndre Fischer                 mpFloatTransparenceItem.reset((XFillFloatTransparenceItem*)pItem->Clone());
8148dcb2a10SAndre Fischer             }
8158dcb2a10SAndre Fischer             else
8168dcb2a10SAndre Fischer             {
8178dcb2a10SAndre Fischer                 mpFloatTransparenceItem.reset();
8188dcb2a10SAndre Fischer             }
8198dcb2a10SAndre Fischer         }
8208dcb2a10SAndre Fischer         else
8218dcb2a10SAndre Fischer         {
8228dcb2a10SAndre Fischer             mpFloatTransparenceItem.reset();
8238dcb2a10SAndre Fischer         }
8248dcb2a10SAndre Fischer     }
8258dcb2a10SAndre Fischer 
8268dcb2a10SAndre Fischer     if(bFillTransparenceChanged)
8278dcb2a10SAndre Fischer     {
8288dcb2a10SAndre Fischer         // update transparency settings dependent of mpTransparanceItem and mpFloatTransparenceItem
8298dcb2a10SAndre Fischer         ImpUpdateTransparencies();
8308dcb2a10SAndre Fischer     }
8318dcb2a10SAndre Fischer 
8328dcb2a10SAndre Fischer 	if	(nSID == SID_ATTR_FILL_STYLE )
8338dcb2a10SAndre Fischer 	{
8348dcb2a10SAndre Fischer 		if( eState == SFX_ITEM_DISABLED )
8358dcb2a10SAndre Fischer 		{
8368dcb2a10SAndre Fischer 			mpLbFillType->Disable();
8378dcb2a10SAndre Fischer 			mpLbFillType->SetNoSelection();
8388dcb2a10SAndre Fischer 			mpLbFillAttr->Show();
8398dcb2a10SAndre Fischer 			mpLbFillAttr->Disable();
8408dcb2a10SAndre Fischer 			mpLbFillAttr->SetNoSelection();
8418dcb2a10SAndre Fischer 			mpToolBoxColor->Hide();
8428dcb2a10SAndre Fischer 			mbTBShow = false;
8438dcb2a10SAndre Fischer 			meLastXFS = -1;
8448dcb2a10SAndre Fischer             mpStyleItem.reset();
8458dcb2a10SAndre Fischer 		}
8468dcb2a10SAndre Fischer 		else if( SFX_ITEM_AVAILABLE == eState )
8478dcb2a10SAndre Fischer 		{
8488dcb2a10SAndre Fischer 			mpStyleItem.reset(pState ? (XFillStyleItem*)pState->Clone() : 0);
8498dcb2a10SAndre Fischer 			mpLbFillType->Enable();
8508dcb2a10SAndre Fischer 
8518dcb2a10SAndre Fischer 			eXFS = (XFillStyle)mpStyleItem->GetValue();
8528dcb2a10SAndre Fischer 			meLastXFS = eXFS;
8538dcb2a10SAndre Fischer 			mpLbFillType->SelectEntryPos(
8548dcb2a10SAndre Fischer 				sal::static_int_cast< sal_uInt16 >( eXFS ) );
8558dcb2a10SAndre Fischer 			//Added for select invisable
8568dcb2a10SAndre Fischer 			if(eXFS == XFILL_NONE)
8578dcb2a10SAndre Fischer 			{
8588dcb2a10SAndre Fischer 				mpLbFillAttr->SetNoSelection();
8598dcb2a10SAndre Fischer 				mpLbFillAttr->Disable();
8608dcb2a10SAndre Fischer 			}
8618dcb2a10SAndre Fischer 			//else
8628dcb2a10SAndre Fischer 			//	mpLbFillAttr->Enable();
8638dcb2a10SAndre Fischer 			Update();
8648dcb2a10SAndre Fischer 			//SelectFillTypeHdl( NULL );
8658dcb2a10SAndre Fischer 		}
8668dcb2a10SAndre Fischer 		else
8678dcb2a10SAndre Fischer 		{
8688dcb2a10SAndre Fischer 			mpLbFillType->SetNoSelection();
8698dcb2a10SAndre Fischer 			mpLbFillAttr->Show();
8708dcb2a10SAndre Fischer 			mpLbFillAttr->Disable();
8718dcb2a10SAndre Fischer 			mpLbFillAttr->SetNoSelection();
8728dcb2a10SAndre Fischer 			mpToolBoxColor->Hide();
8738dcb2a10SAndre Fischer 			mbTBShow = false;
8748dcb2a10SAndre Fischer 			meLastXFS = -1;  //Added
8758dcb2a10SAndre Fischer 			mpStyleItem.reset();
8768dcb2a10SAndre Fischer 		}
8778dcb2a10SAndre Fischer 	}
8788dcb2a10SAndre Fischer 	else if(nSID == SID_ATTR_FILL_COLOR)
8798dcb2a10SAndre Fischer 	{
8808dcb2a10SAndre Fischer 		if( SFX_ITEM_AVAILABLE == eState)
8818dcb2a10SAndre Fischer 		{
8828dcb2a10SAndre Fischer 			mpColorItem.reset(pState ? (XFillColorItem*)pState->Clone() : 0);
8838dcb2a10SAndre Fischer 		}
8848dcb2a10SAndre Fischer 		if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_SOLID)
8858dcb2a10SAndre Fischer 		{
8868dcb2a10SAndre Fischer 			mpLbFillAttr->Hide();
8878dcb2a10SAndre Fischer 			mpToolBoxColor->Show();
8888dcb2a10SAndre Fischer 			mbTBShow = true;
8898dcb2a10SAndre Fischer 			if( SFX_ITEM_AVAILABLE == eState)
8908dcb2a10SAndre Fischer 			{
8918dcb2a10SAndre Fischer 				mpToolBoxColor->Enable();
8928dcb2a10SAndre Fischer 				mbColorAvail = true;	//
8938dcb2a10SAndre Fischer 			    // maLastColor = mpColorItem->GetColorValue();
8948dcb2a10SAndre Fischer 				Update();
8958dcb2a10SAndre Fischer 			}
8968dcb2a10SAndre Fischer 			else if(SFX_ITEM_DISABLED == eState )
8978dcb2a10SAndre Fischer 			{
8988dcb2a10SAndre Fischer 				mpToolBoxColor->Disable();
8998dcb2a10SAndre Fischer 				mbColorAvail = false;	//
9008dcb2a10SAndre Fischer 				mpColorUpdater->Update(COL_WHITE);
9018dcb2a10SAndre Fischer 			}
9028dcb2a10SAndre Fischer 			else
9038dcb2a10SAndre Fischer 			{
9048dcb2a10SAndre Fischer 				mbColorAvail = false;	//
9058dcb2a10SAndre Fischer 				mpColorUpdater->Update(COL_WHITE);
9068dcb2a10SAndre Fischer 			}
9078dcb2a10SAndre Fischer 		}
9088dcb2a10SAndre Fischer 	}
9098dcb2a10SAndre Fischer 	else if(nSID == SID_ATTR_FILL_GRADIENT)
9108dcb2a10SAndre Fischer 	{
9118dcb2a10SAndre Fischer 		if( SFX_ITEM_AVAILABLE == eState)
9128dcb2a10SAndre Fischer 		{
9138dcb2a10SAndre Fischer 			mpFillGradientItem.reset(pState ? (XFillGradientItem*)pState->Clone() : 0);
9148dcb2a10SAndre Fischer 		}
9158dcb2a10SAndre Fischer 		if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_GRADIENT )
9168dcb2a10SAndre Fischer 		{
9178dcb2a10SAndre Fischer 			mpLbFillAttr->Show();
9188dcb2a10SAndre Fischer 			mpToolBoxColor->Hide();
9198dcb2a10SAndre Fischer 			mbTBShow = false;
9208dcb2a10SAndre Fischer 			if( SFX_ITEM_AVAILABLE == eState)
9218dcb2a10SAndre Fischer 			{
9228dcb2a10SAndre Fischer 				mpLbFillAttr->Enable();
9238dcb2a10SAndre Fischer 				Update();
9248dcb2a10SAndre Fischer 			}
9258dcb2a10SAndre Fischer 
9268dcb2a10SAndre Fischer 			else if(SFX_ITEM_DISABLED == eState )
9278dcb2a10SAndre Fischer 			{
9288dcb2a10SAndre Fischer 				mpLbFillAttr->Disable();
9298dcb2a10SAndre Fischer 				mpLbFillAttr->SetNoSelection();
9308dcb2a10SAndre Fischer 			}
9318dcb2a10SAndre Fischer 			else
9328dcb2a10SAndre Fischer 				mpLbFillAttr->SetNoSelection();
9338dcb2a10SAndre Fischer 		}
9348dcb2a10SAndre Fischer 	}
9358dcb2a10SAndre Fischer 	else if(nSID == SID_ATTR_FILL_HATCH)
9368dcb2a10SAndre Fischer 	{
9378dcb2a10SAndre Fischer 		if( SFX_ITEM_AVAILABLE == eState)
9388dcb2a10SAndre Fischer 		{
9398dcb2a10SAndre Fischer 			mpHatchItem.reset(pState ? (XFillHatchItem*)pState->Clone() : 0);
9408dcb2a10SAndre Fischer 		}
9418dcb2a10SAndre Fischer 		if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_HATCH )
9428dcb2a10SAndre Fischer 		{
9438dcb2a10SAndre Fischer 			mpLbFillAttr->Show();
9448dcb2a10SAndre Fischer 			mpToolBoxColor->Hide();
9458dcb2a10SAndre Fischer 			mbTBShow = false;
9468dcb2a10SAndre Fischer 			if( SFX_ITEM_AVAILABLE == eState)
9478dcb2a10SAndre Fischer 			{
9488dcb2a10SAndre Fischer 				mpLbFillAttr->Enable();
9498dcb2a10SAndre Fischer 				Update();
9508dcb2a10SAndre Fischer 			}
9518dcb2a10SAndre Fischer 			else if(SFX_ITEM_DISABLED == eState )
9528dcb2a10SAndre Fischer 			{
9538dcb2a10SAndre Fischer 				mpLbFillAttr->Disable();
9548dcb2a10SAndre Fischer 				mpLbFillAttr->SetNoSelection();
9558dcb2a10SAndre Fischer 			}
9568dcb2a10SAndre Fischer 			else
9578dcb2a10SAndre Fischer 				mpLbFillAttr->SetNoSelection();
9588dcb2a10SAndre Fischer 		}
9598dcb2a10SAndre Fischer 	}
9608dcb2a10SAndre Fischer 	else if(nSID == SID_ATTR_FILL_BITMAP)
9618dcb2a10SAndre Fischer 	{
9628dcb2a10SAndre Fischer 		if( SFX_ITEM_AVAILABLE == eState)
9638dcb2a10SAndre Fischer 		{
9648dcb2a10SAndre Fischer 			mpBitmapItem.reset(pState ? (XFillBitmapItem*)pState->Clone() : 0);
9658dcb2a10SAndre Fischer 		}
9668dcb2a10SAndre Fischer 		if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_BITMAP )
9678dcb2a10SAndre Fischer 		{
9688dcb2a10SAndre Fischer 			mpLbFillAttr->Show();
9698dcb2a10SAndre Fischer 			mpToolBoxColor->Hide();
9708dcb2a10SAndre Fischer 			mbTBShow = false;
9718dcb2a10SAndre Fischer 			if( SFX_ITEM_AVAILABLE == eState)
9728dcb2a10SAndre Fischer 			{
9738dcb2a10SAndre Fischer 				mpLbFillAttr->Enable();
9748dcb2a10SAndre Fischer 				Update();
9758dcb2a10SAndre Fischer 			}
9768dcb2a10SAndre Fischer 			else if(SFX_ITEM_DISABLED == eState )
9778dcb2a10SAndre Fischer 			{
9788dcb2a10SAndre Fischer 				mpLbFillAttr->Disable();
9798dcb2a10SAndre Fischer 				mpLbFillAttr->SetNoSelection();
9808dcb2a10SAndre Fischer 			}
9818dcb2a10SAndre Fischer 			else
9828dcb2a10SAndre Fischer 				mpLbFillAttr->SetNoSelection();
9838dcb2a10SAndre Fischer 		}
9848dcb2a10SAndre Fischer 	}
9858dcb2a10SAndre Fischer 	else if(nSID == SID_COLOR_TABLE)
9868dcb2a10SAndre Fischer 	{
9878dcb2a10SAndre Fischer 		if( SFX_ITEM_AVAILABLE == eState)
9888dcb2a10SAndre Fischer 		{
9898dcb2a10SAndre Fischer 			mpColorTableItem.reset(pState ? (SvxColorTableItem*)pState->Clone() : 0);
9908dcb2a10SAndre Fischer 
9918dcb2a10SAndre Fischer 			if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue()== XFILL_SOLID)
9928dcb2a10SAndre Fischer 			{
9938dcb2a10SAndre Fischer 				if ( mpColorItem )
9948dcb2a10SAndre Fischer 				{
9958dcb2a10SAndre Fischer 					String aString( mpColorItem->GetName() );
9968dcb2a10SAndre Fischer 					Color aColor = mpColorItem->GetColorValue();
9978dcb2a10SAndre Fischer 					mpLbFillAttr->Clear();
9988dcb2a10SAndre Fischer 					SvxColorTableItem aItem( *(const SvxColorTableItem*)(
9998dcb2a10SAndre Fischer 						pSh->GetItem( SID_COLOR_TABLE ) ) );
10008dcb2a10SAndre Fischer 					mpLbFillAttr->Enable();
10018dcb2a10SAndre Fischer 					mpLbFillAttr->Fill( aItem.GetColorTable() );
10028dcb2a10SAndre Fischer 					mpLbFillAttr->SelectEntry( aColor );
10038dcb2a10SAndre Fischer 				}
10048dcb2a10SAndre Fischer 				else
10058dcb2a10SAndre Fischer 					mpLbFillAttr->SetNoSelection();
10068dcb2a10SAndre Fischer 			}
10078dcb2a10SAndre Fischer 		}
10088dcb2a10SAndre Fischer 	}
10098dcb2a10SAndre Fischer 	else if(nSID == SID_GRADIENT_LIST)
10108dcb2a10SAndre Fischer 	{
10118dcb2a10SAndre Fischer 		if( SFX_ITEM_AVAILABLE == eState)
10128dcb2a10SAndre Fischer 		{
10138dcb2a10SAndre Fischer 			mpGradientListItem.reset(pState ? (SvxGradientListItem*)pState->Clone() : 0);
10148dcb2a10SAndre Fischer 
10158dcb2a10SAndre Fischer 			if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_GRADIENT)
10168dcb2a10SAndre Fischer 			{
10178dcb2a10SAndre Fischer 				if ( mpFillGradientItem )
10188dcb2a10SAndre Fischer 				{
10198dcb2a10SAndre Fischer 					String aString( mpFillGradientItem->GetName() );
10208dcb2a10SAndre Fischer 					mpLbFillAttr->Clear();
10218dcb2a10SAndre Fischer 					SvxGradientListItem aItem( *(const SvxGradientListItem*)(
10228dcb2a10SAndre Fischer 						pSh->GetItem( SID_GRADIENT_LIST ) ) );
10238dcb2a10SAndre Fischer 					mpLbFillAttr->Enable();
10248dcb2a10SAndre Fischer 					mpLbFillAttr->Fill( aItem.GetGradientList() );
10258dcb2a10SAndre Fischer 					mpLbFillAttr->SelectEntry( aString );
10268dcb2a10SAndre Fischer 				}
10278dcb2a10SAndre Fischer 				else
10288dcb2a10SAndre Fischer 					mpLbFillAttr->SetNoSelection();
10298dcb2a10SAndre Fischer 			}
10308dcb2a10SAndre Fischer 		}
10318dcb2a10SAndre Fischer 	}
10328dcb2a10SAndre Fischer 	else if(nSID == SID_HATCH_LIST)
10338dcb2a10SAndre Fischer 	{
10348dcb2a10SAndre Fischer 		if( SFX_ITEM_AVAILABLE == eState)
10358dcb2a10SAndre Fischer 		{
10368dcb2a10SAndre Fischer 			mpHatchListItem.reset(pState ? (SvxHatchListItem*)pState->Clone() : 0);
10378dcb2a10SAndre Fischer 
10388dcb2a10SAndre Fischer 			if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_HATCH )
10398dcb2a10SAndre Fischer 			{
10408dcb2a10SAndre Fischer 				if ( mpHatchItem)
10418dcb2a10SAndre Fischer 				{
10428dcb2a10SAndre Fischer 					String aString( mpHatchItem->GetName() );
10438dcb2a10SAndre Fischer 					mpLbFillAttr->Clear();
10448dcb2a10SAndre Fischer 					SvxHatchListItem aItem( *(const SvxHatchListItem*)(
10458dcb2a10SAndre Fischer 						pSh->GetItem( SID_HATCH_LIST ) ) );
10468dcb2a10SAndre Fischer 					mpLbFillAttr->Enable();
10478dcb2a10SAndre Fischer 					mpLbFillAttr->Fill( aItem.GetHatchList() );
10488dcb2a10SAndre Fischer 					mpLbFillAttr->SelectEntry( aString );
10498dcb2a10SAndre Fischer 				}
10508dcb2a10SAndre Fischer 				else
10518dcb2a10SAndre Fischer 					mpLbFillAttr->SetNoSelection();
10528dcb2a10SAndre Fischer 			}
10538dcb2a10SAndre Fischer 		}
10548dcb2a10SAndre Fischer 	}
10558dcb2a10SAndre Fischer 	else if(nSID == SID_BITMAP_LIST)
10568dcb2a10SAndre Fischer 	{
10578dcb2a10SAndre Fischer 		if( SFX_ITEM_AVAILABLE == eState)
10588dcb2a10SAndre Fischer 		{
10598dcb2a10SAndre Fischer 			mpBitmapListItem.reset(pState ? (SvxBitmapListItem*)pState->Clone() : 0);
10608dcb2a10SAndre Fischer 
10618dcb2a10SAndre Fischer 			if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_BITMAP )
10628dcb2a10SAndre Fischer 			{
10638dcb2a10SAndre Fischer 				if ( mpBitmapItem )
10648dcb2a10SAndre Fischer 				{
10658dcb2a10SAndre Fischer 					String aString( mpBitmapItem->GetName() );
10668dcb2a10SAndre Fischer 					mpLbFillAttr->Clear();
10678dcb2a10SAndre Fischer 					SvxBitmapListItem aItem( *(const SvxBitmapListItem*)(
10688dcb2a10SAndre Fischer 						pSh->GetItem( SID_BITMAP_LIST ) ) );
10698dcb2a10SAndre Fischer 					mpLbFillAttr->Enable();
10708dcb2a10SAndre Fischer 					mpLbFillAttr->Fill( aItem.GetBitmapList() );
10718dcb2a10SAndre Fischer 					mpLbFillAttr->SelectEntry( aString );
10728dcb2a10SAndre Fischer 				}
10738dcb2a10SAndre Fischer 				else
10748dcb2a10SAndre Fischer 					mpLbFillAttr->SetNoSelection();
10758dcb2a10SAndre Fischer 			}
10768dcb2a10SAndre Fischer 		}
10778dcb2a10SAndre Fischer 	}
10788dcb2a10SAndre Fischer }
10798dcb2a10SAndre Fischer 
10808dcb2a10SAndre Fischer 
10818dcb2a10SAndre Fischer 
10828dcb2a10SAndre Fischer SfxBindings* AreaPropertyPanel::GetBindings()
10838dcb2a10SAndre Fischer {
10848dcb2a10SAndre Fischer     return mpBindings;
10858dcb2a10SAndre Fischer }
10868dcb2a10SAndre Fischer 
10878dcb2a10SAndre Fischer 
10888dcb2a10SAndre Fischer 
10898dcb2a10SAndre Fischer void AreaPropertyPanel::Update()
10908dcb2a10SAndre Fischer {
10918dcb2a10SAndre Fischer 	if ( mpStyleItem )
10928dcb2a10SAndre Fischer 	{
10938dcb2a10SAndre Fischer 		XFillStyle eXFS = (XFillStyle)mpStyleItem->GetValue();
10948dcb2a10SAndre Fischer 		SfxObjectShell* pSh = SfxObjectShell::Current();
10958dcb2a10SAndre Fischer 
10968dcb2a10SAndre Fischer 		switch( eXFS )
10978dcb2a10SAndre Fischer 		{
10988dcb2a10SAndre Fischer 			case XFILL_NONE:
10998dcb2a10SAndre Fischer 			{
11008dcb2a10SAndre Fischer 				mpLbFillAttr->Show();	//wj for new color picker
11018dcb2a10SAndre Fischer 				mpToolBoxColor->Hide();	//wj for new color picker
11028dcb2a10SAndre Fischer 				mbTBShow = false;
11038dcb2a10SAndre Fischer 			}
11048dcb2a10SAndre Fischer 			break;
11058dcb2a10SAndre Fischer 
11068dcb2a10SAndre Fischer 			case XFILL_SOLID:
11078dcb2a10SAndre Fischer 			{
11088dcb2a10SAndre Fischer 				if ( mpColorItem )
11098dcb2a10SAndre Fischer 				{
11108dcb2a10SAndre Fischer 					mpLbFillAttr->Hide();	//wj for new color picker
11118dcb2a10SAndre Fischer 					mpToolBoxColor->Show();	//wj for new color picker
11128dcb2a10SAndre Fischer 					mbTBShow = true;
11138dcb2a10SAndre Fischer 					mpColorUpdater->Update(mpColorItem->GetColorValue());
11148dcb2a10SAndre Fischer 				}
11158dcb2a10SAndre Fischer 				else
11168dcb2a10SAndre Fischer 					mpColorUpdater->Update(COL_WHITE);
11178dcb2a10SAndre Fischer 			}
11188dcb2a10SAndre Fischer 			break;
11198dcb2a10SAndre Fischer 
11208dcb2a10SAndre Fischer 			case XFILL_GRADIENT:
11218dcb2a10SAndre Fischer 			{
11228dcb2a10SAndre Fischer 				mpLbFillAttr->Show();	//wj for new color picker
11238dcb2a10SAndre Fischer 				mpToolBoxColor->Hide();	//wj for new color picker
11248dcb2a10SAndre Fischer 				mbTBShow = false;
11258dcb2a10SAndre Fischer 				if ( pSh && pSh->GetItem( SID_GRADIENT_LIST ) )
11268dcb2a10SAndre Fischer 				{
11278dcb2a10SAndre Fischer 					SvxGradientListItem aItem( *(const SvxGradientListItem*)(
11288dcb2a10SAndre Fischer 						pSh->GetItem( SID_GRADIENT_LIST ) ) );
11298dcb2a10SAndre Fischer 					mpLbFillAttr->Enable();
11308dcb2a10SAndre Fischer 					mpLbFillAttr->Clear();
11318dcb2a10SAndre Fischer 					mpLbFillAttr->Fill( aItem.GetGradientList() );
11328dcb2a10SAndre Fischer 					if ( mpFillGradientItem )
11338dcb2a10SAndre Fischer 					{
11348dcb2a10SAndre Fischer 						String aString( mpFillGradientItem->GetName() );
11358dcb2a10SAndre Fischer 						mpLbFillAttr->SelectEntry( aString );
11368dcb2a10SAndre Fischer 					}
11378dcb2a10SAndre Fischer 					else
11388dcb2a10SAndre Fischer 						mpLbFillAttr->SetNoSelection();
11398dcb2a10SAndre Fischer 				}
11408dcb2a10SAndre Fischer 				else
11418dcb2a10SAndre Fischer 					mpLbFillAttr->SetNoSelection();
11428dcb2a10SAndre Fischer 			}
11438dcb2a10SAndre Fischer 			break;
11448dcb2a10SAndre Fischer 
11458dcb2a10SAndre Fischer 			case XFILL_HATCH:
11468dcb2a10SAndre Fischer 			{
11478dcb2a10SAndre Fischer 				mpLbFillAttr->Show();	//wj for new color picker
11488dcb2a10SAndre Fischer 				mpToolBoxColor->Hide();	//wj for new color picker
11498dcb2a10SAndre Fischer 				mbTBShow = false;
11508dcb2a10SAndre Fischer 				if ( pSh && pSh->GetItem( SID_HATCH_LIST ) )
11518dcb2a10SAndre Fischer 				{
11528dcb2a10SAndre Fischer 					SvxHatchListItem aItem( *(const SvxHatchListItem*)(
11538dcb2a10SAndre Fischer 						pSh->GetItem( SID_HATCH_LIST ) ) );
11548dcb2a10SAndre Fischer 					mpLbFillAttr->Enable();
11558dcb2a10SAndre Fischer 					mpLbFillAttr->Clear();
11568dcb2a10SAndre Fischer 					mpLbFillAttr->Fill( aItem.GetHatchList() );
11578dcb2a10SAndre Fischer 					if ( mpHatchItem )
11588dcb2a10SAndre Fischer 					{
11598dcb2a10SAndre Fischer 						String aString( mpHatchItem->GetName() );
11608dcb2a10SAndre Fischer 						mpLbFillAttr->SelectEntry( aString );
11618dcb2a10SAndre Fischer 					}
11628dcb2a10SAndre Fischer 					else
11638dcb2a10SAndre Fischer 						mpLbFillAttr->SetNoSelection();
11648dcb2a10SAndre Fischer 				}
11658dcb2a10SAndre Fischer 				else
11668dcb2a10SAndre Fischer 					mpLbFillAttr->SetNoSelection();
11678dcb2a10SAndre Fischer 			}
11688dcb2a10SAndre Fischer 			break;
11698dcb2a10SAndre Fischer 
11708dcb2a10SAndre Fischer 			case XFILL_BITMAP:
11718dcb2a10SAndre Fischer 			{
11728dcb2a10SAndre Fischer 				mpLbFillAttr->Show();	//wj for new color picker
11738dcb2a10SAndre Fischer 				mpToolBoxColor->Hide();	//wj for new color picker
11748dcb2a10SAndre Fischer 				mbTBShow = false;
11758dcb2a10SAndre Fischer 				//mpLbFillAttr->Fill( mpBitmapListItem->GetBitmapList() );
11768dcb2a10SAndre Fischer 				if ( pSh && pSh->GetItem( SID_BITMAP_LIST ) )
11778dcb2a10SAndre Fischer 				{
11788dcb2a10SAndre Fischer 					SvxBitmapListItem aItem( *(const SvxBitmapListItem*)(
11798dcb2a10SAndre Fischer 						pSh->GetItem( SID_BITMAP_LIST ) ) );
11808dcb2a10SAndre Fischer 					mpLbFillAttr->Enable();
11818dcb2a10SAndre Fischer 					mpLbFillAttr->Clear();
11828dcb2a10SAndre Fischer 					mpLbFillAttr->Fill( aItem.GetBitmapList() );
11838dcb2a10SAndre Fischer 					if ( mpBitmapItem )
11848dcb2a10SAndre Fischer 					{
11858dcb2a10SAndre Fischer 						String aString( mpBitmapItem->GetName() );
11868dcb2a10SAndre Fischer 						mpLbFillAttr->SelectEntry( aString );
11878dcb2a10SAndre Fischer 					}
11888dcb2a10SAndre Fischer 					else
11898dcb2a10SAndre Fischer 						mpLbFillAttr->SetNoSelection();
11908dcb2a10SAndre Fischer 				}
11918dcb2a10SAndre Fischer 				else
11928dcb2a10SAndre Fischer 					mpLbFillAttr->SetNoSelection();
11938dcb2a10SAndre Fischer 			}
11948dcb2a10SAndre Fischer 			break;
11958dcb2a10SAndre Fischer 
11968dcb2a10SAndre Fischer 			default:
11978dcb2a10SAndre Fischer 				DBG_ERROR( "Nicht unterstuetzter Flaechentyp" );
11988dcb2a10SAndre Fischer 			break;
11998dcb2a10SAndre Fischer 		}
12008dcb2a10SAndre Fischer 	}
12018dcb2a10SAndre Fischer }
12028dcb2a10SAndre Fischer 
12038dcb2a10SAndre Fischer 
12048dcb2a10SAndre Fischer 
12058dcb2a10SAndre Fischer IMPL_LINK( AreaPropertyPanel, ImplPopupModeEndHdl, FloatingWindow*, EMPTYARG )
12068dcb2a10SAndre Fischer {
12078dcb2a10SAndre Fischer 	return 0;
12088dcb2a10SAndre Fischer }
12098dcb2a10SAndre Fischer 
12108dcb2a10SAndre Fischer 
12118dcb2a10SAndre Fischer 
12128dcb2a10SAndre Fischer IMPL_LINK( AreaPropertyPanel, ClickTrGrHdl_Impl, ToolBox*, pToolBox )
12138dcb2a10SAndre Fischer {
12148dcb2a10SAndre Fischer     maTrGrPopup.Rearrange(mpFloatTransparenceItem.get());
12158dcb2a10SAndre Fischer 
12168dcb2a10SAndre Fischer     OSL_ASSERT(pToolBox->GetCurItemId() == TBI_BTX_GRADIENT);
12178dcb2a10SAndre Fischer 
12188dcb2a10SAndre Fischer     maTrGrPopup.Show(*pToolBox);
12198dcb2a10SAndre Fischer 
12208dcb2a10SAndre Fischer     return (0L);
12218dcb2a10SAndre Fischer }
12228dcb2a10SAndre Fischer 
12238dcb2a10SAndre Fischer 
12248dcb2a10SAndre Fischer 
12258dcb2a10SAndre Fischer IMPL_LINK(AreaPropertyPanel, ChangeTrgrTypeHdl_Impl, void *, EMPTYARG)
12268dcb2a10SAndre Fischer {
12278dcb2a10SAndre Fischer 	sal_uInt16 nSelectType = mpLBTransType->GetSelectEntryPos();
12288dcb2a10SAndre Fischer 	bool bGradient = false;
12298dcb2a10SAndre Fischer 	sal_uInt16 nTrans = 0;
12308dcb2a10SAndre Fischer 
12318dcb2a10SAndre Fischer 	if (nSelectType == 0)
12328dcb2a10SAndre Fischer 	{
12338dcb2a10SAndre Fischer 		mpBTNGradient->Hide();
12348dcb2a10SAndre Fischer 		mpMTRTransparent->Show();
12358dcb2a10SAndre Fischer 		mpMTRTransparent->Enable();
12368dcb2a10SAndre Fischer 		mpMTRTransparent->SetValue(0);
12378dcb2a10SAndre Fischer 	}
12388dcb2a10SAndre Fischer 	else if (nSelectType == 1)
12398dcb2a10SAndre Fischer 	{
12408dcb2a10SAndre Fischer 		mpBTNGradient->Hide();
12418dcb2a10SAndre Fischer 		mpMTRTransparent->Show();
12428dcb2a10SAndre Fischer 		nTrans = mnLastTransSolid;
12438dcb2a10SAndre Fischer 		mpMTRTransparent->SetValue(nTrans);
12448dcb2a10SAndre Fischer 		mpLBTransType->SelectEntryPos(1);// for multi-selected, choose solid no selection
12458dcb2a10SAndre Fischer 		mpMTRTransparent->Enable();
12468dcb2a10SAndre Fischer 	}
12478dcb2a10SAndre Fischer 	else
12488dcb2a10SAndre Fischer 	{
12498dcb2a10SAndre Fischer 		mpBTNGradient->Show();
12508dcb2a10SAndre Fischer 		//for beta1
12518dcb2a10SAndre Fischer 		switch ( nSelectType )
12528dcb2a10SAndre Fischer 		{
12538dcb2a10SAndre Fischer 		case 2:
12548dcb2a10SAndre Fischer 			mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgLinearH : maImgLinear); // high contrast
12558dcb2a10SAndre Fischer 			break;
12568dcb2a10SAndre Fischer 		case 3:
12578dcb2a10SAndre Fischer 			mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgAxialH : maImgAxial);
12588dcb2a10SAndre Fischer 			break;
12598dcb2a10SAndre Fischer 		case 4:
12608dcb2a10SAndre Fischer 			mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgRadialH : maImgRadial);
12618dcb2a10SAndre Fischer 			break;
12628dcb2a10SAndre Fischer 		case 5:
12638dcb2a10SAndre Fischer 			mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgElliH : maImgElli );
12648dcb2a10SAndre Fischer 			break;
12658dcb2a10SAndre Fischer 		case 6:
12668dcb2a10SAndre Fischer 			mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgQuadH : maImgQuad );
12678dcb2a10SAndre Fischer 			break;
12688dcb2a10SAndre Fischer 		case 7:
12698dcb2a10SAndre Fischer 			mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgSquareH : maImgSquare);
12708dcb2a10SAndre Fischer 			break;
12718dcb2a10SAndre Fischer 		}
12728dcb2a10SAndre Fischer 		//end of new code
12738dcb2a10SAndre Fischer 		mpMTRTransparent->Hide();
12748dcb2a10SAndre Fischer 		mpBTNGradient->Enable();
12758dcb2a10SAndre Fischer 		bGradient = true;
12768dcb2a10SAndre Fischer 	}
12778dcb2a10SAndre Fischer 
12788dcb2a10SAndre Fischer 	XFillTransparenceItem aLinearItem(nTrans);
12798dcb2a10SAndre Fischer 	GetBindings()->GetDispatcher()->Execute( SID_ATTR_FILL_TRANSPARENCE, SFX_CALLMODE_RECORD, &aLinearItem, 0L );
12808dcb2a10SAndre Fischer 
12818dcb2a10SAndre Fischer 	if (nSelectType > 1) nSelectType = nSelectType-2;
12828dcb2a10SAndre Fischer 
12838dcb2a10SAndre Fischer 	XGradient aTmpGradient;
12848dcb2a10SAndre Fischer 
12858dcb2a10SAndre Fischer 	switch(nSelectType)
12868dcb2a10SAndre Fischer 	{
12878dcb2a10SAndre Fischer 	case XGRAD_LINEAR:
12888dcb2a10SAndre Fischer 		aTmpGradient = maGradientLinear;
12898dcb2a10SAndre Fischer 		break;
12908dcb2a10SAndre Fischer 	case XGRAD_AXIAL:
12918dcb2a10SAndre Fischer 		aTmpGradient = maGradientAxial;
12928dcb2a10SAndre Fischer 		break;
12938dcb2a10SAndre Fischer 	case XGRAD_RADIAL:
12948dcb2a10SAndre Fischer 		aTmpGradient = maGradientRadial;
12958dcb2a10SAndre Fischer 		break;
12968dcb2a10SAndre Fischer 	case XGRAD_ELLIPTICAL:
12978dcb2a10SAndre Fischer 		aTmpGradient = maGradientElliptical;
12988dcb2a10SAndre Fischer 		break;
12998dcb2a10SAndre Fischer 	case XGRAD_SQUARE:
13008dcb2a10SAndre Fischer 		aTmpGradient = maGradientSquare;
13018dcb2a10SAndre Fischer 		break;
13028dcb2a10SAndre Fischer 	case XGRAD_RECT:
13038dcb2a10SAndre Fischer 		aTmpGradient = maGradientRect;
13048dcb2a10SAndre Fischer 		break;
13058dcb2a10SAndre Fischer 	}
13068dcb2a10SAndre Fischer 	SfxItemPool* pPool = NULL;
13078dcb2a10SAndre Fischer 	bool bEnable = false;
13088dcb2a10SAndre Fischer 	if (bGradient) bEnable = true;
13098dcb2a10SAndre Fischer 	XFillFloatTransparenceItem aGradientItem(pPool,aTmpGradient, bEnable );
13108dcb2a10SAndre Fischer 
13118dcb2a10SAndre Fischer 	GetBindings()->GetDispatcher()->Execute( SID_ATTR_FILL_FLOATTRANSPARENCE, SFX_CALLMODE_RECORD, &aGradientItem, 0L );
13128dcb2a10SAndre Fischer 
13138dcb2a10SAndre Fischer 	return( 0L );
13148dcb2a10SAndre Fischer }
13158dcb2a10SAndre Fischer 
13168dcb2a10SAndre Fischer 
13178dcb2a10SAndre Fischer 
13188dcb2a10SAndre Fischer IMPL_LINK(AreaPropertyPanel, ModifyTransparentHdl_Impl, void*, EMPTYARG)
13198dcb2a10SAndre Fischer {
13208dcb2a10SAndre Fischer 	sal_uInt16 nTrans = (sal_uInt16)mpMTRTransparent->GetValue();
13218dcb2a10SAndre Fischer 	mnLastTransSolid = nTrans;
13228dcb2a10SAndre Fischer 	sal_uInt16 nSelectType = mpLBTransType->GetSelectEntryPos();
13238dcb2a10SAndre Fischer 	if (nTrans != 0 && nSelectType == 0)
13248dcb2a10SAndre Fischer 		mpLBTransType->SelectEntryPos(1);
13258dcb2a10SAndre Fischer 	XFillTransparenceItem aLinearItem(nTrans);
13268dcb2a10SAndre Fischer 	GetBindings()->GetDispatcher()->Execute( SID_ATTR_FILL_TRANSPARENCE, SFX_CALLMODE_RECORD, &aLinearItem, 0L );
13278dcb2a10SAndre Fischer 
13288dcb2a10SAndre Fischer 	return 0L;
13298dcb2a10SAndre Fischer }
13308dcb2a10SAndre Fischer 
13318dcb2a10SAndre Fischer 
13328dcb2a10SAndre Fischer Color AreaPropertyPanel::GetLastColor (void) const
13338dcb2a10SAndre Fischer {
13348dcb2a10SAndre Fischer     return maLastColor;
13358dcb2a10SAndre Fischer }
13368dcb2a10SAndre Fischer 
13378dcb2a10SAndre Fischer 
13388dcb2a10SAndre Fischer 
13398dcb2a10SAndre Fischer 
13408dcb2a10SAndre Fischer XGradient AreaPropertyPanel::GetGradient (const XGradientStyle eStyle) const
13418dcb2a10SAndre Fischer {
13428dcb2a10SAndre Fischer     switch (eStyle)
13438dcb2a10SAndre Fischer     {
13448dcb2a10SAndre Fischer         default:
13458dcb2a10SAndre Fischer 		case XGRAD_LINEAR:
13468dcb2a10SAndre Fischer             return maGradientLinear;
13478dcb2a10SAndre Fischer 		case XGRAD_AXIAL:
13488dcb2a10SAndre Fischer             return maGradientAxial;
13498dcb2a10SAndre Fischer 		case XGRAD_RADIAL:
13508dcb2a10SAndre Fischer             return maGradientRadial;
13518dcb2a10SAndre Fischer 		case XGRAD_ELLIPTICAL:
13528dcb2a10SAndre Fischer             return maGradientElliptical;
13538dcb2a10SAndre Fischer 		case XGRAD_SQUARE:
13548dcb2a10SAndre Fischer             return maGradientSquare;
13558dcb2a10SAndre Fischer 		case XGRAD_RECT:
13568dcb2a10SAndre Fischer             return maGradientRect;
13578dcb2a10SAndre Fischer     }
13588dcb2a10SAndre Fischer }
13598dcb2a10SAndre Fischer 
13608dcb2a10SAndre Fischer 
13618dcb2a10SAndre Fischer 
13628dcb2a10SAndre Fischer 
13638dcb2a10SAndre Fischer void AreaPropertyPanel::SetGradient (const XGradient& rGradient)
13648dcb2a10SAndre Fischer {
13658dcb2a10SAndre Fischer     switch (rGradient.GetGradientStyle())
13668dcb2a10SAndre Fischer     {
13678dcb2a10SAndre Fischer         case XGRAD_LINEAR:
13688dcb2a10SAndre Fischer 			maGradientLinear = rGradient;
13698dcb2a10SAndre Fischer             break;
13708dcb2a10SAndre Fischer         case XGRAD_AXIAL:
13718dcb2a10SAndre Fischer 			maGradientAxial = rGradient;
13728dcb2a10SAndre Fischer             break;
13738dcb2a10SAndre Fischer         case XGRAD_RADIAL:
13748dcb2a10SAndre Fischer 			maGradientRadial = rGradient;
13758dcb2a10SAndre Fischer             break;
13768dcb2a10SAndre Fischer         case XGRAD_ELLIPTICAL:
13778dcb2a10SAndre Fischer 			maGradientElliptical = rGradient;
13788dcb2a10SAndre Fischer             break;
13798dcb2a10SAndre Fischer         case XGRAD_SQUARE:
13808dcb2a10SAndre Fischer             maGradientSquare = rGradient;
13818dcb2a10SAndre Fischer             break;
13828dcb2a10SAndre Fischer         case XGRAD_RECT:
13838dcb2a10SAndre Fischer             maGradientRect = rGradient;
13848dcb2a10SAndre Fischer             break;
13858dcb2a10SAndre Fischer 	}
13868dcb2a10SAndre Fischer }
13878dcb2a10SAndre Fischer 
13888dcb2a10SAndre Fischer 
13898dcb2a10SAndre Fischer 
13908dcb2a10SAndre Fischer 
13918dcb2a10SAndre Fischer sal_Int32 AreaPropertyPanel::GetSelectedTransparencyTypeIndex (void) const
13928dcb2a10SAndre Fischer {
13938dcb2a10SAndre Fischer     return mpLBTransType->GetSelectEntryPos();
13948dcb2a10SAndre Fischer }
13958dcb2a10SAndre Fischer 
13968dcb2a10SAndre Fischer } } // end of namespace svx::sidebar
1397