1*8dcb2a10SAndre Fischer /************************************************************** 2*8dcb2a10SAndre Fischer * 3*8dcb2a10SAndre Fischer * Licensed to the Apache Software Foundation (ASF) under one 4*8dcb2a10SAndre Fischer * or more contributor license agreements. See the NOTICE file 5*8dcb2a10SAndre Fischer * distributed with this work for additional information 6*8dcb2a10SAndre Fischer * regarding copyright ownership. The ASF licenses this file 7*8dcb2a10SAndre Fischer * to you under the Apache License, Version 2.0 (the 8*8dcb2a10SAndre Fischer * "License"); you may not use this file except in compliance 9*8dcb2a10SAndre Fischer * with the License. You may obtain a copy of the License at 10*8dcb2a10SAndre Fischer * 11*8dcb2a10SAndre Fischer * http://www.apache.org/licenses/LICENSE-2.0 12*8dcb2a10SAndre Fischer * 13*8dcb2a10SAndre Fischer * Unless required by applicable law or agreed to in writing, 14*8dcb2a10SAndre Fischer * software distributed under the License is distributed on an 15*8dcb2a10SAndre Fischer * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*8dcb2a10SAndre Fischer * KIND, either express or implied. See the License for the 17*8dcb2a10SAndre Fischer * specific language governing permissions and limitations 18*8dcb2a10SAndre Fischer * under the License. 19*8dcb2a10SAndre Fischer * 20*8dcb2a10SAndre Fischer *************************************************************/ 21*8dcb2a10SAndre Fischer 22*8dcb2a10SAndre Fischer #include "svx/sidebar/PopupContainer.hxx" 23*8dcb2a10SAndre Fischer #include "AreaTransparencyGradientControl.hxx" 24*8dcb2a10SAndre Fischer 25*8dcb2a10SAndre Fischer #include <sfx2/sidebar/propertypanel.hrc> 26*8dcb2a10SAndre Fischer #include <sfx2/sidebar/Theme.hxx> 27*8dcb2a10SAndre Fischer #include <sfx2/sidebar/ControlFactory.hxx> 28*8dcb2a10SAndre Fischer #include <AreaPropertyPanel.hxx> 29*8dcb2a10SAndre Fischer #include <AreaPropertyPanel.hrc> 30*8dcb2a10SAndre Fischer #include <svx/dialogs.hrc> 31*8dcb2a10SAndre Fischer #include <svx/dialmgr.hxx> 32*8dcb2a10SAndre Fischer #include <sfx2/objsh.hxx> 33*8dcb2a10SAndre Fischer #include <svx/xfltrit.hxx> 34*8dcb2a10SAndre Fischer #include <svx/xflftrit.hxx> 35*8dcb2a10SAndre Fischer #include <svx/xtable.hxx> 36*8dcb2a10SAndre Fischer #include <sfx2/dispatch.hxx> 37*8dcb2a10SAndre Fischer #include <sfx2/bindings.hxx> 38*8dcb2a10SAndre Fischer #include <helpid.hrc> 39*8dcb2a10SAndre Fischer #include <svtools/valueset.hxx> 40*8dcb2a10SAndre Fischer #include <unotools/pathoptions.hxx> 41*8dcb2a10SAndre Fischer #include <svx/svxitems.hrc> 42*8dcb2a10SAndre Fischer #include <vcl/toolbox.hxx> 43*8dcb2a10SAndre Fischer #include <svtools/toolbarmenu.hxx> 44*8dcb2a10SAndre Fischer #include "sidebar/ColorControl.hxx" 45*8dcb2a10SAndre Fischer 46*8dcb2a10SAndre Fischer #include <boost/bind.hpp> 47*8dcb2a10SAndre Fischer 48*8dcb2a10SAndre Fischer using namespace css; 49*8dcb2a10SAndre Fischer using namespace cssu; 50*8dcb2a10SAndre Fischer using ::sfx2::sidebar::Theme; 51*8dcb2a10SAndre Fischer 52*8dcb2a10SAndre Fischer #define A2S(pString) (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(pString))) 53*8dcb2a10SAndre Fischer 54*8dcb2a10SAndre Fischer 55*8dcb2a10SAndre Fischer 56*8dcb2a10SAndre Fischer 57*8dcb2a10SAndre Fischer namespace svx { namespace sidebar { 58*8dcb2a10SAndre Fischer 59*8dcb2a10SAndre Fischer const sal_Int32 AreaPropertyPanel::DEFAULT_CENTERX = 50; 60*8dcb2a10SAndre Fischer const sal_Int32 AreaPropertyPanel::DEFAULT_CENTERY = 50; 61*8dcb2a10SAndre Fischer const sal_Int32 AreaPropertyPanel::DEFAULT_ANGLE = 0; 62*8dcb2a10SAndre Fischer const sal_Int32 AreaPropertyPanel::DEFAULT_STARTVALUE = 0; 63*8dcb2a10SAndre Fischer const sal_Int32 AreaPropertyPanel::DEFAULT_ENDVALUE = 16777215; 64*8dcb2a10SAndre Fischer const sal_Int32 AreaPropertyPanel::DEFAULT_BORDER = 0; 65*8dcb2a10SAndre Fischer 66*8dcb2a10SAndre Fischer 67*8dcb2a10SAndre Fischer 68*8dcb2a10SAndre Fischer AreaPropertyPanel::AreaPropertyPanel( 69*8dcb2a10SAndre Fischer Window* pParent, 70*8dcb2a10SAndre Fischer const cssu::Reference<css::frame::XFrame>& rxFrame, 71*8dcb2a10SAndre Fischer SfxBindings* pBindings) 72*8dcb2a10SAndre Fischer : Control( 73*8dcb2a10SAndre Fischer pParent, 74*8dcb2a10SAndre Fischer SVX_RES(RID_SIDEBAR_AREA_PANEL)), 75*8dcb2a10SAndre Fischer meLastXFS(-1), 76*8dcb2a10SAndre Fischer maLastColor(Color(COL_DEFAULT_SHAPE_FILLING)), 77*8dcb2a10SAndre Fischer mnLastPosGradient(0), 78*8dcb2a10SAndre Fischer mnLastPosHatch(0), 79*8dcb2a10SAndre Fischer mnLastPosBitmap(0), 80*8dcb2a10SAndre Fischer mnLastTransSolid(50), 81*8dcb2a10SAndre Fischer maGradientLinear(), 82*8dcb2a10SAndre Fischer maGradientAxial(), 83*8dcb2a10SAndre Fischer maGradientRadial(), 84*8dcb2a10SAndre Fischer maGradientElliptical(), 85*8dcb2a10SAndre Fischer maGradientSquare(), 86*8dcb2a10SAndre Fischer maGradientRect(), 87*8dcb2a10SAndre Fischer mpColorTextFT(new FixedText(this, SVX_RES(FT_COLOR_LIST))), 88*8dcb2a10SAndre Fischer mpLbFillType(new SvxFillTypeBox(this)), 89*8dcb2a10SAndre Fischer mpLbFillAttr(new SvxFillAttrBox(this)), 90*8dcb2a10SAndre Fischer mpToolBoxColorBackground(sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this)), 91*8dcb2a10SAndre Fischer mpToolBoxColor(sfx2::sidebar::ControlFactory::CreateToolBox(mpToolBoxColorBackground.get(), SVX_RES(TB_COLOR))), 92*8dcb2a10SAndre Fischer mpTrspTextFT(new FixedText(this, SVX_RES(FL_TRSP_TEXT))), 93*8dcb2a10SAndre Fischer mpLBTransType(new ListBox(this, SVX_RES(LB_TRGR_TYPES))), 94*8dcb2a10SAndre Fischer mpMTRTransparent(new MetricField(this, SVX_RES(MTR_TRANSPARENT))), 95*8dcb2a10SAndre Fischer mpBTNGradientBackground(sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this)), 96*8dcb2a10SAndre Fischer mpBTNGradient(sfx2::sidebar::ControlFactory::CreateToolBox(mpBTNGradientBackground.get(), SVX_RES(BTN_GRADIENT))), 97*8dcb2a10SAndre Fischer mpColorUpdater(new ::svx::ToolboxButtonColorUpdater(SID_ATTR_FILL_COLOR, TBI_COLOR, mpToolBoxColor.get(), TBX_UPDATER_MODE_CHAR_COLOR_NEW)), 98*8dcb2a10SAndre Fischer mpStyleItem(), 99*8dcb2a10SAndre Fischer mpColorItem(), 100*8dcb2a10SAndre Fischer mpFillGradientItem(), 101*8dcb2a10SAndre Fischer mpHatchItem(), 102*8dcb2a10SAndre Fischer mpBitmapItem(), 103*8dcb2a10SAndre Fischer mpColorTableItem(), 104*8dcb2a10SAndre Fischer mpGradientListItem(), 105*8dcb2a10SAndre Fischer mpHatchListItem(), 106*8dcb2a10SAndre Fischer mpBitmapListItem(), 107*8dcb2a10SAndre Fischer maStyleControl(SID_ATTR_FILL_STYLE, *pBindings, *this), 108*8dcb2a10SAndre Fischer maColorControl(SID_ATTR_FILL_COLOR, *pBindings, *this), 109*8dcb2a10SAndre Fischer maGradientControl(SID_ATTR_FILL_GRADIENT, *pBindings, *this), 110*8dcb2a10SAndre Fischer maHatchControl(SID_ATTR_FILL_HATCH, *pBindings, *this), 111*8dcb2a10SAndre Fischer maBitmapControl(SID_ATTR_FILL_BITMAP, *pBindings, *this), 112*8dcb2a10SAndre Fischer maColorTableControl(SID_COLOR_TABLE, *pBindings, *this), 113*8dcb2a10SAndre Fischer maGradientListControl(SID_GRADIENT_LIST, *pBindings, *this), 114*8dcb2a10SAndre Fischer maHatchListControl(SID_HATCH_LIST, *pBindings, *this), 115*8dcb2a10SAndre Fischer maBitmapListControl(SID_BITMAP_LIST, *pBindings, *this), 116*8dcb2a10SAndre Fischer maFillTransparenceController(SID_ATTR_FILL_TRANSPARENCE, *pBindings, *this), 117*8dcb2a10SAndre Fischer maFillFloatTransparenceController(SID_ATTR_FILL_FLOATTRANSPARENCE, *pBindings, *this), 118*8dcb2a10SAndre Fischer maImgAxial(SVX_RES(IMG_AXIAL)), 119*8dcb2a10SAndre Fischer maImgElli(SVX_RES(IMG_ELLI)), 120*8dcb2a10SAndre Fischer maImgQuad(SVX_RES(IMG_QUAD)), 121*8dcb2a10SAndre Fischer maImgRadial(SVX_RES(IMG_RADIAL)), 122*8dcb2a10SAndre Fischer maImgSquare(SVX_RES(IMG_SQUARE)), 123*8dcb2a10SAndre Fischer maImgLinear(SVX_RES(IMG_LINEAR)), 124*8dcb2a10SAndre Fischer maImgColor(SVX_RES(IMG_COLOR)), 125*8dcb2a10SAndre Fischer maImgAxialH(SVX_RES(IMG_AXIAL_H)), 126*8dcb2a10SAndre Fischer maImgElliH(SVX_RES(IMG_ELLI_H)), 127*8dcb2a10SAndre Fischer maImgQuadH(SVX_RES(IMG_QUAD_H)), 128*8dcb2a10SAndre Fischer maImgRadialH(SVX_RES(IMG_RADIAL_H)), 129*8dcb2a10SAndre Fischer maImgSquareH(SVX_RES(IMG_SQUARE_H)), 130*8dcb2a10SAndre Fischer maImgLinearH(SVX_RES(IMG_LINEAR_H)), 131*8dcb2a10SAndre Fischer maImgColorH(SVX_RES(IMG_COLOR_H)), 132*8dcb2a10SAndre Fischer msHelpFillType(SVX_RES(STR_HELP_TYPE)), 133*8dcb2a10SAndre Fischer msHelpFillAttr(SVX_RES(STR_HELP_ATTR)), 134*8dcb2a10SAndre Fischer maTrGrPopup(this, ::boost::bind(&AreaPropertyPanel::CreateTransparencyGradientControl, this, _1)), 135*8dcb2a10SAndre Fischer maColorPopup(this, ::boost::bind(&AreaPropertyPanel::CreateColorPopupControl, this, _1)), 136*8dcb2a10SAndre Fischer mpFloatTransparenceItem(), 137*8dcb2a10SAndre Fischer mpTransparanceItem(), 138*8dcb2a10SAndre Fischer mxFrame(rxFrame), 139*8dcb2a10SAndre Fischer maContext(), 140*8dcb2a10SAndre Fischer mpBindings(pBindings), 141*8dcb2a10SAndre Fischer mbTBShow(true), 142*8dcb2a10SAndre Fischer mbColorAvail(true) 143*8dcb2a10SAndre Fischer { 144*8dcb2a10SAndre Fischer Initialize(); 145*8dcb2a10SAndre Fischer FreeResource(); 146*8dcb2a10SAndre Fischer } 147*8dcb2a10SAndre Fischer 148*8dcb2a10SAndre Fischer 149*8dcb2a10SAndre Fischer 150*8dcb2a10SAndre Fischer AreaPropertyPanel::~AreaPropertyPanel() 151*8dcb2a10SAndre Fischer { 152*8dcb2a10SAndre Fischer // Destroy the toolboxes, then their background windows. 153*8dcb2a10SAndre Fischer mpToolBoxColor.reset(); 154*8dcb2a10SAndre Fischer mpBTNGradient.reset(); 155*8dcb2a10SAndre Fischer mpToolBoxColorBackground.reset(); 156*8dcb2a10SAndre Fischer mpBTNGradientBackground.reset(); 157*8dcb2a10SAndre Fischer } 158*8dcb2a10SAndre Fischer 159*8dcb2a10SAndre Fischer 160*8dcb2a10SAndre Fischer 161*8dcb2a10SAndre Fischer void AreaPropertyPanel::ShowMenu (void) 162*8dcb2a10SAndre Fischer { 163*8dcb2a10SAndre Fischer if (mpBindings != NULL) 164*8dcb2a10SAndre Fischer { 165*8dcb2a10SAndre Fischer SfxDispatcher* pDispatcher = mpBindings->GetDispatcher(); 166*8dcb2a10SAndre Fischer if (pDispatcher != NULL) 167*8dcb2a10SAndre Fischer pDispatcher->Execute(SID_ATTRIBUTES_AREA, SFX_CALLMODE_ASYNCHRON); 168*8dcb2a10SAndre Fischer } 169*8dcb2a10SAndre Fischer } 170*8dcb2a10SAndre Fischer 171*8dcb2a10SAndre Fischer 172*8dcb2a10SAndre Fischer 173*8dcb2a10SAndre Fischer void AreaPropertyPanel::Initialize() 174*8dcb2a10SAndre Fischer { 175*8dcb2a10SAndre Fischer maGradientLinear.SetXOffset(DEFAULT_CENTERX); 176*8dcb2a10SAndre Fischer maGradientLinear.SetYOffset(DEFAULT_CENTERY); 177*8dcb2a10SAndre Fischer maGradientLinear.SetAngle(DEFAULT_ANGLE); 178*8dcb2a10SAndre Fischer maGradientLinear.SetStartColor(Color(DEFAULT_STARTVALUE)); 179*8dcb2a10SAndre Fischer maGradientLinear.SetEndColor(Color(DEFAULT_ENDVALUE)); 180*8dcb2a10SAndre Fischer maGradientLinear.SetBorder(DEFAULT_BORDER); 181*8dcb2a10SAndre Fischer maGradientLinear.SetGradientStyle(XGRAD_LINEAR); 182*8dcb2a10SAndre Fischer 183*8dcb2a10SAndre Fischer maGradientAxial = maGradientLinear; 184*8dcb2a10SAndre Fischer maGradientAxial.SetGradientStyle(XGRAD_AXIAL); 185*8dcb2a10SAndre Fischer 186*8dcb2a10SAndre Fischer maGradientRadial = maGradientLinear; 187*8dcb2a10SAndre Fischer maGradientRadial.SetGradientStyle(XGRAD_RADIAL); 188*8dcb2a10SAndre Fischer 189*8dcb2a10SAndre Fischer maGradientElliptical = maGradientLinear; 190*8dcb2a10SAndre Fischer maGradientElliptical.SetGradientStyle(XGRAD_ELLIPTICAL); 191*8dcb2a10SAndre Fischer 192*8dcb2a10SAndre Fischer maGradientSquare = maGradientLinear; 193*8dcb2a10SAndre Fischer maGradientSquare.SetGradientStyle(XGRAD_SQUARE); 194*8dcb2a10SAndre Fischer 195*8dcb2a10SAndre Fischer maGradientRect = maGradientLinear; 196*8dcb2a10SAndre Fischer maGradientRect.SetGradientStyle(XGRAD_RECT); 197*8dcb2a10SAndre Fischer 198*8dcb2a10SAndre Fischer Size aLogicalFillSize(MBOX_WIDTH,LISTBOX_HEIGHT); 199*8dcb2a10SAndre Fischer Size aLogicalAttrSize(MBOX_WIDTH + 1,LISTBOX_HEIGHT); 200*8dcb2a10SAndre Fischer 201*8dcb2a10SAndre Fischer Point aPoint(SECTIONPAGE_MARGIN_HORIZONTAL,SECTIONPAGE_MARGIN_VERTICAL_TOP + FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL); 202*8dcb2a10SAndre Fischer Point aPoint_Picker(SECTIONPAGE_MARGIN_HORIZONTAL + MBOX_WIDTH + CONTROL_SPACING_HORIZONTAL,SECTIONPAGE_MARGIN_VERTICAL_TOP + FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL); 203*8dcb2a10SAndre Fischer 204*8dcb2a10SAndre Fischer Size aTypeSize(LogicToPixel(aLogicalFillSize, MAP_APPFONT)); 205*8dcb2a10SAndre Fischer Size aAttrSize(LogicToPixel(aLogicalAttrSize, MAP_APPFONT)); 206*8dcb2a10SAndre Fischer 207*8dcb2a10SAndre Fischer Point aTypePoint(LogicToPixel(aPoint, MAP_APPFONT)); 208*8dcb2a10SAndre Fischer Point aAttrPoint(LogicToPixel(aPoint_Picker, MAP_APPFONT)); 209*8dcb2a10SAndre Fischer 210*8dcb2a10SAndre Fischer mpLbFillType->SetPosSizePixel(aTypePoint,aTypeSize); 211*8dcb2a10SAndre Fischer mpLbFillAttr->SetPosSizePixel(aAttrPoint,aAttrSize); 212*8dcb2a10SAndre Fischer 213*8dcb2a10SAndre Fischer mpLbFillType->SetHelpId(HID_PPROPERTYPANEL_AREA_LB_FILL_TYPES); 214*8dcb2a10SAndre Fischer mpLbFillAttr->SetHelpId(HID_PPROPERTYPANEL_AREA_LB_FILL_ATTR); 215*8dcb2a10SAndre Fischer 216*8dcb2a10SAndre Fischer mpLbFillType->SetQuickHelpText(msHelpFillType); 217*8dcb2a10SAndre Fischer mpLbFillAttr->SetQuickHelpText(msHelpFillAttr); 218*8dcb2a10SAndre Fischer 219*8dcb2a10SAndre Fischer mpLbFillType->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Fill"))); //wj acc 220*8dcb2a10SAndre Fischer mpLbFillAttr->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Fill"))); //wj acc 221*8dcb2a10SAndre Fischer 222*8dcb2a10SAndre Fischer Link aLink = LINK( this, AreaPropertyPanel, SelectFillTypeHdl ); 223*8dcb2a10SAndre Fischer mpLbFillType->SetSelectHdl( aLink ); 224*8dcb2a10SAndre Fischer 225*8dcb2a10SAndre Fischer aLink = LINK( this, AreaPropertyPanel, SelectFillAttrHdl ); 226*8dcb2a10SAndre Fischer mpLbFillAttr->SetSelectHdl( aLink ); 227*8dcb2a10SAndre Fischer 228*8dcb2a10SAndre Fischer //add for new color picker 229*8dcb2a10SAndre Fischer mpLbFillAttr->Hide(); 230*8dcb2a10SAndre Fischer mpToolBoxColor->SetItemImage(TBI_COLOR, GetDisplayBackground().GetColor().IsDark()? maImgColorH : maImgColor); 231*8dcb2a10SAndre Fischer Size aTbxSize( mpToolBoxColor->CalcWindowSizePixel() ); 232*8dcb2a10SAndre Fischer mpToolBoxColor->SetOutputSizePixel( aTbxSize ); 233*8dcb2a10SAndre Fischer mpToolBoxColor->SetItemBits( TBI_COLOR, mpToolBoxColor->GetItemBits( TBI_COLOR ) | TIB_DROPDOWNONLY ); 234*8dcb2a10SAndre Fischer mpToolBoxColor->SetBackground(Wallpaper()); 235*8dcb2a10SAndre Fischer mpToolBoxColor->SetPaintTransparent(true); 236*8dcb2a10SAndre Fischer mpToolBoxColor->SetQuickHelpText(TBI_COLOR, String(SVX_RES(STR_HELP_COLOR))); //wj acc 237*8dcb2a10SAndre Fischer //mpToolBoxColor->SetItemText(TBI_COLOR, msHelpFillAttr); 238*8dcb2a10SAndre Fischer 239*8dcb2a10SAndre Fischer long aHeightLBStyle = mpLbFillType->GetSizePixel().getHeight(); 240*8dcb2a10SAndre Fischer long aLBPosY = mpLbFillType->GetPosPixel().getY(); 241*8dcb2a10SAndre Fischer long aHeightTBAttr = mpToolBoxColor->GetSizePixel().getHeight(); 242*8dcb2a10SAndre Fischer Point aPointTBAttr = mpToolBoxColor->GetPosPixel(); 243*8dcb2a10SAndre Fischer aPointTBAttr.setY( aLBPosY + aHeightLBStyle / 2 - aHeightTBAttr / 2); 244*8dcb2a10SAndre Fischer mpToolBoxColor->SetPosPixel(aPointTBAttr); 245*8dcb2a10SAndre Fischer 246*8dcb2a10SAndre Fischer aLink = LINK(this, AreaPropertyPanel, ToolBoxColorDropHdl); 247*8dcb2a10SAndre Fischer mpToolBoxColor->SetDropdownClickHdl ( aLink ); 248*8dcb2a10SAndre Fischer mpToolBoxColor->SetSelectHdl ( aLink ); 249*8dcb2a10SAndre Fischer 250*8dcb2a10SAndre Fischer //add end 251*8dcb2a10SAndre Fischer mpLBTransType->SetSelectHdl(LINK(this, AreaPropertyPanel, ChangeTrgrTypeHdl_Impl)); 252*8dcb2a10SAndre Fischer mpLBTransType->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Transparency"))); //wj acc 253*8dcb2a10SAndre Fischer 254*8dcb2a10SAndre Fischer mpMTRTransparent->SetValue( 50 ); 255*8dcb2a10SAndre Fischer mpMTRTransparent->SetModifyHdl(LINK(this, AreaPropertyPanel, ModifyTransparentHdl_Impl)); 256*8dcb2a10SAndre Fischer mpMTRTransparent->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Transparency"))); //wj acc 257*8dcb2a10SAndre Fischer 258*8dcb2a10SAndre Fischer mpBTNGradient->SetItemBits( TBI_BTX_GRADIENT, mpBTNGradient->GetItemBits( TBI_BTX_GRADIENT ) | TIB_DROPDOWNONLY ); 259*8dcb2a10SAndre Fischer aLink = LINK( this, AreaPropertyPanel, ClickTrGrHdl_Impl ); 260*8dcb2a10SAndre Fischer mpBTNGradient->SetDropdownClickHdl( aLink ); 261*8dcb2a10SAndre Fischer mpBTNGradient->SetSelectHdl( aLink ); 262*8dcb2a10SAndre Fischer aTbxSize = mpBTNGradient->CalcWindowSizePixel(); 263*8dcb2a10SAndre Fischer mpBTNGradient->SetOutputSizePixel( aTbxSize ); 264*8dcb2a10SAndre Fischer mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,maImgLinear); 265*8dcb2a10SAndre Fischer mpBTNGradient->SetQuickHelpText(TBI_BTX_GRADIENT, String(SVX_RES(STR_HELP_GRADIENT))); //wj acc 266*8dcb2a10SAndre Fischer mpBTNGradient->Hide(); 267*8dcb2a10SAndre Fischer 268*8dcb2a10SAndre Fischer long aHeightLBTrans = mpLBTransType->GetSizePixel().getHeight(); 269*8dcb2a10SAndre Fischer Point aPointLB = mpLBTransType->GetPosPixel(); 270*8dcb2a10SAndre Fischer long aPosY = aPointLB.getY(); 271*8dcb2a10SAndre Fischer 272*8dcb2a10SAndre Fischer Point aPointMetric = mpMTRTransparent->GetPosPixel(); 273*8dcb2a10SAndre Fischer Point aPointTB = mpMTRTransparent->GetPosPixel(); 274*8dcb2a10SAndre Fischer long aHeightMetric = mpMTRTransparent->GetSizePixel().getHeight(); 275*8dcb2a10SAndre Fischer long aHeightTool = mpBTNGradient->GetSizePixel().getHeight(); 276*8dcb2a10SAndre Fischer aPointMetric.setY(aPosY+aHeightLBTrans/2-aHeightMetric/2); 277*8dcb2a10SAndre Fischer aPointTB.setY(aPosY+aHeightLBTrans/2-aHeightTool/2); 278*8dcb2a10SAndre Fischer aPointTB.setX(aPointTB.getX()+3); 279*8dcb2a10SAndre Fischer mpMTRTransparent->SetPosPixel(aPointMetric); 280*8dcb2a10SAndre Fischer mpBTNGradient->SetPosPixel(aPointTB); 281*8dcb2a10SAndre Fischer 282*8dcb2a10SAndre Fischer mpLbFillType->SetAccessibleRelationLabeledBy(mpColorTextFT.get()); 283*8dcb2a10SAndre Fischer mpLbFillAttr->SetAccessibleRelationLabeledBy(mpLbFillAttr.get()); 284*8dcb2a10SAndre Fischer mpToolBoxColor->SetAccessibleRelationLabeledBy(mpToolBoxColor.get()); 285*8dcb2a10SAndre Fischer mpLBTransType->SetAccessibleRelationLabeledBy(mpTrspTextFT.get()); 286*8dcb2a10SAndre Fischer mpMTRTransparent->SetAccessibleRelationLabeledBy(mpMTRTransparent.get()); 287*8dcb2a10SAndre Fischer mpBTNGradient->SetAccessibleRelationLabeledBy(mpBTNGradient.get()); 288*8dcb2a10SAndre Fischer 289*8dcb2a10SAndre Fischer SetupIcons(); 290*8dcb2a10SAndre Fischer } 291*8dcb2a10SAndre Fischer 292*8dcb2a10SAndre Fischer 293*8dcb2a10SAndre Fischer 294*8dcb2a10SAndre Fischer IMPL_LINK( AreaPropertyPanel, SelectFillTypeHdl, ListBox *, pToolBox ) 295*8dcb2a10SAndre Fischer { 296*8dcb2a10SAndre Fischer XFillStyle eXFS = (XFillStyle)mpLbFillType->GetSelectEntryPos(); 297*8dcb2a10SAndre Fischer 298*8dcb2a10SAndre Fischer if( (XFillStyle) meLastXFS != eXFS ) 299*8dcb2a10SAndre Fischer { 300*8dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 301*8dcb2a10SAndre Fischer SfxObjectShell* pSh = SfxObjectShell::Current(); 302*8dcb2a10SAndre Fischer XFillStyleItem aXFillStyleItem( eXFS ); 303*8dcb2a10SAndre Fischer GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_STYLE, SFX_CALLMODE_RECORD, &aXFillStyleItem, 0L); 304*8dcb2a10SAndre Fischer 305*8dcb2a10SAndre Fischer switch( eXFS ) 306*8dcb2a10SAndre Fischer { 307*8dcb2a10SAndre Fischer case XFILL_NONE: 308*8dcb2a10SAndre Fischer { 309*8dcb2a10SAndre Fischer mpLbFillAttr->Show(); 310*8dcb2a10SAndre Fischer mpToolBoxColor->Hide(); 311*8dcb2a10SAndre Fischer mbTBShow = false; 312*8dcb2a10SAndre Fischer mpLbFillType->Selected(); 313*8dcb2a10SAndre Fischer mpLbFillAttr->Disable(); 314*8dcb2a10SAndre Fischer } 315*8dcb2a10SAndre Fischer break; 316*8dcb2a10SAndre Fischer 317*8dcb2a10SAndre Fischer case XFILL_SOLID: 318*8dcb2a10SAndre Fischer { 319*8dcb2a10SAndre Fischer mpLbFillAttr->Hide(); 320*8dcb2a10SAndre Fischer mpToolBoxColor->Show(); 321*8dcb2a10SAndre Fischer mbTBShow = true; 322*8dcb2a10SAndre Fischer String aTmpStr; 323*8dcb2a10SAndre Fischer Color aColor = maLastColor; 324*8dcb2a10SAndre Fischer XFillColorItem aXFillColorItem( aTmpStr, aColor ); 325*8dcb2a10SAndre Fischer GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_COLOR, SFX_CALLMODE_RECORD, &aXFillColorItem, 0L); 326*8dcb2a10SAndre Fischer } 327*8dcb2a10SAndre Fischer break; 328*8dcb2a10SAndre Fischer 329*8dcb2a10SAndre Fischer case XFILL_GRADIENT: 330*8dcb2a10SAndre Fischer { 331*8dcb2a10SAndre Fischer mpLbFillAttr->Show(); 332*8dcb2a10SAndre Fischer mpToolBoxColor->Hide(); 333*8dcb2a10SAndre Fischer mbTBShow = false; 334*8dcb2a10SAndre Fischer if ( pSh && pSh->GetItem( SID_GRADIENT_LIST ) ) 335*8dcb2a10SAndre Fischer { 336*8dcb2a10SAndre Fischer // 337*8dcb2a10SAndre Fischer if(mpLbFillAttr->GetEntryCount() == 0) 338*8dcb2a10SAndre Fischer { 339*8dcb2a10SAndre Fischer SvxGradientListItem aItem( *(const SvxGradientListItem*)( 340*8dcb2a10SAndre Fischer pSh->GetItem( SID_GRADIENT_LIST ) ) ); 341*8dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 342*8dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 343*8dcb2a10SAndre Fischer mpLbFillAttr->Fill( aItem.GetGradientList() ); 344*8dcb2a10SAndre Fischer } 345*8dcb2a10SAndre Fischer 346*8dcb2a10SAndre Fischer if ( mnLastPosGradient != LISTBOX_ENTRY_NOTFOUND) 347*8dcb2a10SAndre Fischer { 348*8dcb2a10SAndre Fischer SvxGradientListItem aItem( *(const SvxGradientListItem*)( pSh->GetItem( SID_GRADIENT_LIST ) ) ); 349*8dcb2a10SAndre Fischer if ( mnLastPosGradient < aItem.GetGradientList()->Count() ) 350*8dcb2a10SAndre Fischer { 351*8dcb2a10SAndre Fischer XGradient aGradient = aItem.GetGradientList()->GetGradient( mnLastPosGradient )->GetGradient(); 352*8dcb2a10SAndre Fischer XFillGradientItem aXFillGradientItem( mpLbFillAttr->GetEntry(mnLastPosGradient), aGradient ); 353*8dcb2a10SAndre Fischer GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_GRADIENT, SFX_CALLMODE_RECORD, &aXFillGradientItem, 0L); 354*8dcb2a10SAndre Fischer mpLbFillAttr->SelectEntryPos(mnLastPosGradient); //add 355*8dcb2a10SAndre Fischer } 356*8dcb2a10SAndre Fischer } 357*8dcb2a10SAndre Fischer } 358*8dcb2a10SAndre Fischer else 359*8dcb2a10SAndre Fischer mpLbFillAttr->Disable(); 360*8dcb2a10SAndre Fischer } 361*8dcb2a10SAndre Fischer break; 362*8dcb2a10SAndre Fischer 363*8dcb2a10SAndre Fischer case XFILL_HATCH: 364*8dcb2a10SAndre Fischer { 365*8dcb2a10SAndre Fischer mpLbFillAttr->Show(); 366*8dcb2a10SAndre Fischer mpToolBoxColor->Hide(); 367*8dcb2a10SAndre Fischer mbTBShow = false; 368*8dcb2a10SAndre Fischer if ( pSh && pSh->GetItem( SID_HATCH_LIST ) ) 369*8dcb2a10SAndre Fischer { 370*8dcb2a10SAndre Fischer // 371*8dcb2a10SAndre Fischer if(mpLbFillAttr->GetEntryCount() == 0) 372*8dcb2a10SAndre Fischer { 373*8dcb2a10SAndre Fischer SvxHatchListItem aItem( *(const SvxHatchListItem*)( 374*8dcb2a10SAndre Fischer pSh->GetItem( SID_HATCH_LIST ) ) ); 375*8dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 376*8dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 377*8dcb2a10SAndre Fischer mpLbFillAttr->Fill( aItem.GetHatchList() ); 378*8dcb2a10SAndre Fischer } 379*8dcb2a10SAndre Fischer 380*8dcb2a10SAndre Fischer if ( mnLastPosHatch != LISTBOX_ENTRY_NOTFOUND ) 381*8dcb2a10SAndre Fischer { 382*8dcb2a10SAndre Fischer SvxHatchListItem aItem( *(const SvxHatchListItem*)( pSh->GetItem( SID_HATCH_LIST ) ) ); 383*8dcb2a10SAndre Fischer if ( mnLastPosHatch < aItem.GetHatchList()->Count() ) 384*8dcb2a10SAndre Fischer { 385*8dcb2a10SAndre Fischer XHatch aHatch = aItem.GetHatchList()->GetHatch( mnLastPosHatch )->GetHatch(); 386*8dcb2a10SAndre Fischer XFillHatchItem aXFillHatchItem( mpLbFillAttr->GetSelectEntry(), aHatch ); 387*8dcb2a10SAndre Fischer GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_HATCH, SFX_CALLMODE_RECORD, &aXFillHatchItem, 0L); 388*8dcb2a10SAndre Fischer mpLbFillAttr->SelectEntryPos(mnLastPosHatch); //add 389*8dcb2a10SAndre Fischer } 390*8dcb2a10SAndre Fischer } 391*8dcb2a10SAndre Fischer } 392*8dcb2a10SAndre Fischer else 393*8dcb2a10SAndre Fischer mpLbFillAttr->Disable(); 394*8dcb2a10SAndre Fischer } 395*8dcb2a10SAndre Fischer break; 396*8dcb2a10SAndre Fischer 397*8dcb2a10SAndre Fischer case XFILL_BITMAP: 398*8dcb2a10SAndre Fischer { 399*8dcb2a10SAndre Fischer mpLbFillAttr->Show(); 400*8dcb2a10SAndre Fischer mpToolBoxColor->Hide(); 401*8dcb2a10SAndre Fischer mbTBShow = false; 402*8dcb2a10SAndre Fischer if ( pSh && pSh->GetItem( SID_BITMAP_LIST ) ) 403*8dcb2a10SAndre Fischer { 404*8dcb2a10SAndre Fischer // 405*8dcb2a10SAndre Fischer if(mpLbFillAttr->GetEntryCount() == 0) 406*8dcb2a10SAndre Fischer { 407*8dcb2a10SAndre Fischer SvxBitmapListItem aItem( *(const SvxBitmapListItem*)( 408*8dcb2a10SAndre Fischer pSh->GetItem( SID_BITMAP_LIST ) ) ); 409*8dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 410*8dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 411*8dcb2a10SAndre Fischer mpLbFillAttr->Fill( aItem.GetBitmapList() ); 412*8dcb2a10SAndre Fischer } 413*8dcb2a10SAndre Fischer 414*8dcb2a10SAndre Fischer if ( mnLastPosBitmap != LISTBOX_ENTRY_NOTFOUND ) 415*8dcb2a10SAndre Fischer { 416*8dcb2a10SAndre Fischer SvxBitmapListItem aItem( *(const SvxBitmapListItem*)( pSh->GetItem( SID_BITMAP_LIST ) ) ); 417*8dcb2a10SAndre Fischer if ( mnLastPosBitmap < aItem.GetBitmapList()->Count() ) 418*8dcb2a10SAndre Fischer { 419*8dcb2a10SAndre Fischer const XBitmapEntry* pXBitmapEntry = aItem.GetBitmapList()->GetBitmap(mnLastPosBitmap); 420*8dcb2a10SAndre Fischer XFillBitmapItem aXFillBitmapItem( mpLbFillAttr->GetSelectEntry(), pXBitmapEntry->GetGraphicObject() ); 421*8dcb2a10SAndre Fischer GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_BITMAP, SFX_CALLMODE_RECORD, &aXFillBitmapItem, 0L); 422*8dcb2a10SAndre Fischer mpLbFillAttr->SelectEntryPos(mnLastPosBitmap); //add 423*8dcb2a10SAndre Fischer } 424*8dcb2a10SAndre Fischer } 425*8dcb2a10SAndre Fischer } 426*8dcb2a10SAndre Fischer else 427*8dcb2a10SAndre Fischer mpLbFillAttr->Disable(); 428*8dcb2a10SAndre Fischer } 429*8dcb2a10SAndre Fischer break; 430*8dcb2a10SAndre Fischer } 431*8dcb2a10SAndre Fischer meLastXFS = (sal_uInt16)eXFS; 432*8dcb2a10SAndre Fischer if( eXFS != XFILL_NONE ) 433*8dcb2a10SAndre Fischer { 434*8dcb2a10SAndre Fischer if ( pToolBox ) 435*8dcb2a10SAndre Fischer mpLbFillType->Selected(); 436*8dcb2a10SAndre Fischer } 437*8dcb2a10SAndre Fischer } 438*8dcb2a10SAndre Fischer return 0; 439*8dcb2a10SAndre Fischer } 440*8dcb2a10SAndre Fischer 441*8dcb2a10SAndre Fischer 442*8dcb2a10SAndre Fischer 443*8dcb2a10SAndre Fischer IMPL_LINK( AreaPropertyPanel, SelectFillAttrHdl, ListBox*, pToolBox ) 444*8dcb2a10SAndre Fischer { 445*8dcb2a10SAndre Fischer XFillStyle eXFS = (XFillStyle)mpLbFillType->GetSelectEntryPos(); 446*8dcb2a10SAndre Fischer XFillStyleItem aXFillStyleItem( eXFS ); 447*8dcb2a10SAndre Fischer SfxObjectShell* pSh = SfxObjectShell::Current(); 448*8dcb2a10SAndre Fischer 449*8dcb2a10SAndre Fischer if(pToolBox) 450*8dcb2a10SAndre Fischer { 451*8dcb2a10SAndre Fischer if( (XFillStyle) meLastXFS != eXFS ) 452*8dcb2a10SAndre Fischer { 453*8dcb2a10SAndre Fischer GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_STYLE, SFX_CALLMODE_RECORD, &aXFillStyleItem, 0L); //Added 20090909 454*8dcb2a10SAndre Fischer } 455*8dcb2a10SAndre Fischer 456*8dcb2a10SAndre Fischer switch( eXFS ) 457*8dcb2a10SAndre Fischer { 458*8dcb2a10SAndre Fischer case XFILL_SOLID: 459*8dcb2a10SAndre Fischer //{ 460*8dcb2a10SAndre Fischer // //String aTmpStr = mpLbFillAttr->GetSelectEntry(); 461*8dcb2a10SAndre Fischer // //Color aColor = mpLbFillAttr->GetSelectEntryColor(); 462*8dcb2a10SAndre Fischer // //if(aColor.GetColor() == 0 && aTmpStr.Equals(String::CreateFromAscii(""))) 463*8dcb2a10SAndre Fischer // String aTmpStr; 464*8dcb2a10SAndre Fischer // Color aColor = maLastColor; 465*8dcb2a10SAndre Fischer // XFillColorItem aXFillColorItem( aTmpStr, aColor ); 466*8dcb2a10SAndre Fischer // GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_COLOR, SFX_CALLMODE_RECORD, &aXFillColorItem, 0L); 467*8dcb2a10SAndre Fischer // maLastColor = aColor; 468*8dcb2a10SAndre Fischer //} 469*8dcb2a10SAndre Fischer break; 470*8dcb2a10SAndre Fischer 471*8dcb2a10SAndre Fischer case XFILL_GRADIENT: 472*8dcb2a10SAndre Fischer { 473*8dcb2a10SAndre Fischer sal_uInt16 nPos = mpLbFillAttr->GetSelectEntryPos(); 474*8dcb2a10SAndre Fischer if( nPos == LISTBOX_ENTRY_NOTFOUND ) 475*8dcb2a10SAndre Fischer nPos = mnLastPosGradient; 476*8dcb2a10SAndre Fischer 477*8dcb2a10SAndre Fischer if ( nPos != LISTBOX_ENTRY_NOTFOUND && pSh && pSh->GetItem( SID_GRADIENT_LIST ) ) 478*8dcb2a10SAndre Fischer { 479*8dcb2a10SAndre Fischer SvxGradientListItem aItem( *(const SvxGradientListItem*)( pSh->GetItem( SID_GRADIENT_LIST ) ) ); 480*8dcb2a10SAndre Fischer if ( nPos < aItem.GetGradientList()->Count() ) 481*8dcb2a10SAndre Fischer { 482*8dcb2a10SAndre Fischer XGradient aGradient = aItem.GetGradientList()->GetGradient( nPos )->GetGradient(); 483*8dcb2a10SAndre Fischer XFillGradientItem aXFillGradientItem( mpLbFillAttr->GetSelectEntry(), aGradient ); 484*8dcb2a10SAndre Fischer GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_GRADIENT, SFX_CALLMODE_RECORD, &aXFillGradientItem, 0L); 485*8dcb2a10SAndre Fischer } 486*8dcb2a10SAndre Fischer } 487*8dcb2a10SAndre Fischer if(nPos != LISTBOX_ENTRY_NOTFOUND) 488*8dcb2a10SAndre Fischer mnLastPosGradient = nPos; 489*8dcb2a10SAndre Fischer } 490*8dcb2a10SAndre Fischer break; 491*8dcb2a10SAndre Fischer 492*8dcb2a10SAndre Fischer case XFILL_HATCH: 493*8dcb2a10SAndre Fischer { 494*8dcb2a10SAndre Fischer sal_uInt16 nPos = mpLbFillAttr->GetSelectEntryPos(); 495*8dcb2a10SAndre Fischer if( nPos == LISTBOX_ENTRY_NOTFOUND ) 496*8dcb2a10SAndre Fischer nPos = mnLastPosHatch; 497*8dcb2a10SAndre Fischer if ( nPos != LISTBOX_ENTRY_NOTFOUND && pSh && pSh->GetItem( SID_HATCH_LIST ) ) 498*8dcb2a10SAndre Fischer { 499*8dcb2a10SAndre Fischer SvxHatchListItem aItem( *(const SvxHatchListItem*)( pSh->GetItem( SID_HATCH_LIST ) ) ); 500*8dcb2a10SAndre Fischer if ( nPos < aItem.GetHatchList()->Count() ) 501*8dcb2a10SAndre Fischer { 502*8dcb2a10SAndre Fischer XHatch aHatch = aItem.GetHatchList()->GetHatch( nPos )->GetHatch(); 503*8dcb2a10SAndre Fischer XFillHatchItem aXFillHatchItem( mpLbFillAttr->GetSelectEntry(), aHatch ); 504*8dcb2a10SAndre Fischer GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_HATCH, SFX_CALLMODE_RECORD, &aXFillHatchItem, 0L); 505*8dcb2a10SAndre Fischer } 506*8dcb2a10SAndre Fischer } 507*8dcb2a10SAndre Fischer if(nPos != LISTBOX_ENTRY_NOTFOUND) 508*8dcb2a10SAndre Fischer mnLastPosHatch = nPos; 509*8dcb2a10SAndre Fischer } 510*8dcb2a10SAndre Fischer break; 511*8dcb2a10SAndre Fischer 512*8dcb2a10SAndre Fischer case XFILL_BITMAP: 513*8dcb2a10SAndre Fischer { 514*8dcb2a10SAndre Fischer sal_uInt16 nPos = mpLbFillAttr->GetSelectEntryPos(); 515*8dcb2a10SAndre Fischer if( nPos == LISTBOX_ENTRY_NOTFOUND ) 516*8dcb2a10SAndre Fischer nPos = mnLastPosBitmap; 517*8dcb2a10SAndre Fischer if ( nPos != LISTBOX_ENTRY_NOTFOUND && pSh && pSh->GetItem( SID_BITMAP_LIST ) ) 518*8dcb2a10SAndre Fischer { 519*8dcb2a10SAndre Fischer SvxBitmapListItem aItem( *(const SvxBitmapListItem*)( pSh->GetItem( SID_BITMAP_LIST ) ) ); 520*8dcb2a10SAndre Fischer if ( nPos < aItem.GetBitmapList()->Count() ) 521*8dcb2a10SAndre Fischer { 522*8dcb2a10SAndre Fischer const XBitmapEntry* pXBitmapEntry = aItem.GetBitmapList()->GetBitmap(nPos); 523*8dcb2a10SAndre Fischer XFillBitmapItem aXFillBitmapItem( mpLbFillAttr->GetSelectEntry(), pXBitmapEntry->GetGraphicObject() ); 524*8dcb2a10SAndre Fischer GetBindings()->GetDispatcher()->Execute(SID_ATTR_FILL_BITMAP, SFX_CALLMODE_RECORD, &aXFillBitmapItem, 0L); 525*8dcb2a10SAndre Fischer } 526*8dcb2a10SAndre Fischer } 527*8dcb2a10SAndre Fischer if(nPos != LISTBOX_ENTRY_NOTFOUND) 528*8dcb2a10SAndre Fischer mnLastPosBitmap = nPos; 529*8dcb2a10SAndre Fischer } 530*8dcb2a10SAndre Fischer break; 531*8dcb2a10SAndre Fischer 532*8dcb2a10SAndre Fischer default: 533*8dcb2a10SAndre Fischer break; 534*8dcb2a10SAndre Fischer } 535*8dcb2a10SAndre Fischer } 536*8dcb2a10SAndre Fischer return 0; 537*8dcb2a10SAndre Fischer } 538*8dcb2a10SAndre Fischer 539*8dcb2a10SAndre Fischer 540*8dcb2a10SAndre Fischer //add for color picker 541*8dcb2a10SAndre Fischer 542*8dcb2a10SAndre Fischer IMPL_LINK(AreaPropertyPanel, ToolBoxColorDropHdl, ToolBox*, pToolBox) 543*8dcb2a10SAndre Fischer { 544*8dcb2a10SAndre Fischer sal_uInt16 nId = pToolBox->GetCurItemId(); 545*8dcb2a10SAndre Fischer 546*8dcb2a10SAndre Fischer if(nId == TBI_COLOR) 547*8dcb2a10SAndre Fischer { 548*8dcb2a10SAndre Fischer maColorPopup.Show(*pToolBox); 549*8dcb2a10SAndre Fischer if (mpColorItem) 550*8dcb2a10SAndre Fischer maColorPopup.SetCurrentColor(mpColorItem->GetColorValue(), mbColorAvail); 551*8dcb2a10SAndre Fischer else 552*8dcb2a10SAndre Fischer maColorPopup.SetCurrentColor(COL_WHITE, false); 553*8dcb2a10SAndre Fischer } 554*8dcb2a10SAndre Fischer 555*8dcb2a10SAndre Fischer return 0; 556*8dcb2a10SAndre Fischer } 557*8dcb2a10SAndre Fischer 558*8dcb2a10SAndre Fischer 559*8dcb2a10SAndre Fischer 560*8dcb2a10SAndre Fischer void AreaPropertyPanel::SetColor ( 561*8dcb2a10SAndre Fischer const String& rsColorName, 562*8dcb2a10SAndre Fischer const Color aColor) 563*8dcb2a10SAndre Fischer { 564*8dcb2a10SAndre Fischer XFillColorItem aXFillColorItem (rsColorName, aColor); 565*8dcb2a10SAndre Fischer mpBindings->GetDispatcher()->Execute(SID_ATTR_FILL_COLOR, SFX_CALLMODE_RECORD, &aXFillColorItem, 0L); 566*8dcb2a10SAndre Fischer maLastColor = aColor; 567*8dcb2a10SAndre Fischer } 568*8dcb2a10SAndre Fischer 569*8dcb2a10SAndre Fischer 570*8dcb2a10SAndre Fischer 571*8dcb2a10SAndre Fischer 572*8dcb2a10SAndre Fischer PopupControl* AreaPropertyPanel::CreateTransparencyGradientControl (PopupContainer* pParent) 573*8dcb2a10SAndre Fischer { 574*8dcb2a10SAndre Fischer return new AreaTransparencyGradientControl(pParent, *this); 575*8dcb2a10SAndre Fischer } 576*8dcb2a10SAndre Fischer 577*8dcb2a10SAndre Fischer 578*8dcb2a10SAndre Fischer 579*8dcb2a10SAndre Fischer 580*8dcb2a10SAndre Fischer PopupControl* AreaPropertyPanel::CreateColorPopupControl (PopupContainer* pParent) 581*8dcb2a10SAndre Fischer { 582*8dcb2a10SAndre Fischer return new ColorControl( 583*8dcb2a10SAndre Fischer pParent, 584*8dcb2a10SAndre Fischer mpBindings, 585*8dcb2a10SAndre Fischer SVX_RES(RID_POPUPPANEL_AERAPAGE_COLOR), 586*8dcb2a10SAndre Fischer SVX_RES(VS_COLOR), 587*8dcb2a10SAndre Fischer ::boost::bind(&AreaPropertyPanel::GetLastColor, this), 588*8dcb2a10SAndre Fischer ::boost::bind(&AreaPropertyPanel::SetColor, this, _1,_2), 589*8dcb2a10SAndre Fischer pParent, 590*8dcb2a10SAndre Fischer 0); 591*8dcb2a10SAndre Fischer } 592*8dcb2a10SAndre Fischer 593*8dcb2a10SAndre Fischer 594*8dcb2a10SAndre Fischer 595*8dcb2a10SAndre Fischer 596*8dcb2a10SAndre Fischer void AreaPropertyPanel::SetupIcons(void) 597*8dcb2a10SAndre Fischer { 598*8dcb2a10SAndre Fischer if(Theme::GetBoolean(Theme::Bool_UseSymphonyIcons)) 599*8dcb2a10SAndre Fischer { 600*8dcb2a10SAndre Fischer // todo 601*8dcb2a10SAndre Fischer } 602*8dcb2a10SAndre Fischer else 603*8dcb2a10SAndre Fischer { 604*8dcb2a10SAndre Fischer // todo 605*8dcb2a10SAndre Fischer } 606*8dcb2a10SAndre Fischer } 607*8dcb2a10SAndre Fischer 608*8dcb2a10SAndre Fischer 609*8dcb2a10SAndre Fischer 610*8dcb2a10SAndre Fischer AreaPropertyPanel* AreaPropertyPanel::Create ( 611*8dcb2a10SAndre Fischer Window* pParent, 612*8dcb2a10SAndre Fischer const cssu::Reference<css::frame::XFrame>& rxFrame, 613*8dcb2a10SAndre Fischer SfxBindings* pBindings) 614*8dcb2a10SAndre Fischer { 615*8dcb2a10SAndre Fischer if (pParent == NULL) 616*8dcb2a10SAndre Fischer throw lang::IllegalArgumentException(A2S("no parent Window given to AreaPropertyPanel::Create"), NULL, 0); 617*8dcb2a10SAndre Fischer if ( ! rxFrame.is()) 618*8dcb2a10SAndre Fischer throw lang::IllegalArgumentException(A2S("no XFrame given to AreaPropertyPanel::Create"), NULL, 1); 619*8dcb2a10SAndre Fischer if (pBindings == NULL) 620*8dcb2a10SAndre Fischer throw lang::IllegalArgumentException(A2S("no SfxBindings given to AreaPropertyPanel::Create"), NULL, 2); 621*8dcb2a10SAndre Fischer 622*8dcb2a10SAndre Fischer return new AreaPropertyPanel( 623*8dcb2a10SAndre Fischer pParent, 624*8dcb2a10SAndre Fischer rxFrame, 625*8dcb2a10SAndre Fischer pBindings); 626*8dcb2a10SAndre Fischer } 627*8dcb2a10SAndre Fischer 628*8dcb2a10SAndre Fischer 629*8dcb2a10SAndre Fischer 630*8dcb2a10SAndre Fischer void AreaPropertyPanel::DataChanged( 631*8dcb2a10SAndre Fischer const DataChangedEvent& rEvent) 632*8dcb2a10SAndre Fischer { 633*8dcb2a10SAndre Fischer (void)rEvent; 634*8dcb2a10SAndre Fischer 635*8dcb2a10SAndre Fischer SetupIcons(); 636*8dcb2a10SAndre Fischer } 637*8dcb2a10SAndre Fischer 638*8dcb2a10SAndre Fischer 639*8dcb2a10SAndre Fischer 640*8dcb2a10SAndre Fischer void AreaPropertyPanel::HandleContextChange( 641*8dcb2a10SAndre Fischer const ::sfx2::sidebar::EnumContext aContext) 642*8dcb2a10SAndre Fischer { 643*8dcb2a10SAndre Fischer if(maContext == aContext) 644*8dcb2a10SAndre Fischer { 645*8dcb2a10SAndre Fischer // Nothing to do. 646*8dcb2a10SAndre Fischer return; 647*8dcb2a10SAndre Fischer } 648*8dcb2a10SAndre Fischer 649*8dcb2a10SAndre Fischer maContext = aContext; 650*8dcb2a10SAndre Fischer 651*8dcb2a10SAndre Fischer 652*8dcb2a10SAndre Fischer 653*8dcb2a10SAndre Fischer // todo 654*8dcb2a10SAndre Fischer } 655*8dcb2a10SAndre Fischer 656*8dcb2a10SAndre Fischer 657*8dcb2a10SAndre Fischer 658*8dcb2a10SAndre Fischer void AreaPropertyPanel::ImpUpdateTransparencies() 659*8dcb2a10SAndre Fischer { 660*8dcb2a10SAndre Fischer if(mpTransparanceItem.get() || mpFloatTransparenceItem.get()) 661*8dcb2a10SAndre Fischer { 662*8dcb2a10SAndre Fischer bool bZeroValue(false); 663*8dcb2a10SAndre Fischer 664*8dcb2a10SAndre Fischer if(mpTransparanceItem.get()) 665*8dcb2a10SAndre Fischer { 666*8dcb2a10SAndre Fischer const sal_uInt16 nValue(mpTransparanceItem->GetValue()); 667*8dcb2a10SAndre Fischer 668*8dcb2a10SAndre Fischer if(!nValue) 669*8dcb2a10SAndre Fischer { 670*8dcb2a10SAndre Fischer bZeroValue = true; 671*8dcb2a10SAndre Fischer } 672*8dcb2a10SAndre Fischer else if(nValue <= 100) 673*8dcb2a10SAndre Fischer { 674*8dcb2a10SAndre Fischer mpLBTransType->Enable(); 675*8dcb2a10SAndre Fischer mpLBTransType->SelectEntryPos(1); 676*8dcb2a10SAndre Fischer mpBTNGradient->Hide(); 677*8dcb2a10SAndre Fischer mpMTRTransparent->Show(); 678*8dcb2a10SAndre Fischer mpMTRTransparent->Enable(); 679*8dcb2a10SAndre Fischer mpMTRTransparent->SetValue(nValue); 680*8dcb2a10SAndre Fischer } 681*8dcb2a10SAndre Fischer 682*8dcb2a10SAndre Fischer maTrGrPopup.Hide(); 683*8dcb2a10SAndre Fischer } 684*8dcb2a10SAndre Fischer 685*8dcb2a10SAndre Fischer if(bZeroValue && mpFloatTransparenceItem.get()) 686*8dcb2a10SAndre Fischer { 687*8dcb2a10SAndre Fischer if(mpFloatTransparenceItem->IsEnabled()) 688*8dcb2a10SAndre Fischer { 689*8dcb2a10SAndre Fischer const XGradient& rGradient = mpFloatTransparenceItem->GetGradientValue(); 690*8dcb2a10SAndre Fischer const bool bHighContrast(GetSettings().GetStyleSettings().GetHighContrastMode()); 691*8dcb2a10SAndre Fischer sal_uInt16 nEntryPos(0); 692*8dcb2a10SAndre Fischer Image* pImage = 0; 693*8dcb2a10SAndre Fischer 694*8dcb2a10SAndre Fischer mpLBTransType->Enable(); 695*8dcb2a10SAndre Fischer mpMTRTransparent->Hide(); 696*8dcb2a10SAndre Fischer mpBTNGradient->Enable(); 697*8dcb2a10SAndre Fischer mpBTNGradient->Show(); 698*8dcb2a10SAndre Fischer 699*8dcb2a10SAndre Fischer switch(rGradient.GetGradientStyle()) 700*8dcb2a10SAndre Fischer { 701*8dcb2a10SAndre Fischer case XGRAD_LINEAR: 702*8dcb2a10SAndre Fischer { 703*8dcb2a10SAndre Fischer nEntryPos = 2; 704*8dcb2a10SAndre Fischer pImage = bHighContrast ? &maImgLinearH : &maImgLinear; 705*8dcb2a10SAndre Fischer break; 706*8dcb2a10SAndre Fischer } 707*8dcb2a10SAndre Fischer case XGRAD_AXIAL: 708*8dcb2a10SAndre Fischer { 709*8dcb2a10SAndre Fischer nEntryPos = 3; 710*8dcb2a10SAndre Fischer pImage = bHighContrast ? &maImgAxialH : &maImgAxial; 711*8dcb2a10SAndre Fischer break; 712*8dcb2a10SAndre Fischer } 713*8dcb2a10SAndre Fischer case XGRAD_RADIAL: 714*8dcb2a10SAndre Fischer { 715*8dcb2a10SAndre Fischer nEntryPos = 4; 716*8dcb2a10SAndre Fischer pImage = bHighContrast ? &maImgRadialH : &maImgRadial; 717*8dcb2a10SAndre Fischer break; 718*8dcb2a10SAndre Fischer } 719*8dcb2a10SAndre Fischer case XGRAD_ELLIPTICAL: 720*8dcb2a10SAndre Fischer { 721*8dcb2a10SAndre Fischer nEntryPos = 5; 722*8dcb2a10SAndre Fischer pImage = bHighContrast ? &maImgElliH : &maImgElli; 723*8dcb2a10SAndre Fischer break; 724*8dcb2a10SAndre Fischer } 725*8dcb2a10SAndre Fischer case XGRAD_SQUARE: 726*8dcb2a10SAndre Fischer { 727*8dcb2a10SAndre Fischer nEntryPos = 6; 728*8dcb2a10SAndre Fischer pImage = bHighContrast ? &maImgQuadH : &maImgQuad; 729*8dcb2a10SAndre Fischer break; 730*8dcb2a10SAndre Fischer } 731*8dcb2a10SAndre Fischer case XGRAD_RECT: 732*8dcb2a10SAndre Fischer { 733*8dcb2a10SAndre Fischer nEntryPos = 7; 734*8dcb2a10SAndre Fischer pImage = bHighContrast ? &maImgSquareH : &maImgSquare; 735*8dcb2a10SAndre Fischer break; 736*8dcb2a10SAndre Fischer } 737*8dcb2a10SAndre Fischer } 738*8dcb2a10SAndre Fischer 739*8dcb2a10SAndre Fischer mpLBTransType->SelectEntryPos(nEntryPos); 740*8dcb2a10SAndre Fischer mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT, *pImage); 741*8dcb2a10SAndre Fischer bZeroValue = false; 742*8dcb2a10SAndre Fischer } 743*8dcb2a10SAndre Fischer else 744*8dcb2a10SAndre Fischer { 745*8dcb2a10SAndre Fischer bZeroValue = true; 746*8dcb2a10SAndre Fischer } 747*8dcb2a10SAndre Fischer } 748*8dcb2a10SAndre Fischer 749*8dcb2a10SAndre Fischer if(bZeroValue) 750*8dcb2a10SAndre Fischer { 751*8dcb2a10SAndre Fischer mpLBTransType->Enable(); 752*8dcb2a10SAndre Fischer mpLBTransType->SelectEntryPos(0); 753*8dcb2a10SAndre Fischer mpBTNGradient->Hide(); 754*8dcb2a10SAndre Fischer mpMTRTransparent->Enable(); 755*8dcb2a10SAndre Fischer mpMTRTransparent->Show(); 756*8dcb2a10SAndre Fischer mpMTRTransparent->SetValue(0); 757*8dcb2a10SAndre Fischer } 758*8dcb2a10SAndre Fischer } 759*8dcb2a10SAndre Fischer else 760*8dcb2a10SAndre Fischer { 761*8dcb2a10SAndre Fischer // no transparency at all 762*8dcb2a10SAndre Fischer mpLBTransType->SetNoSelection(); 763*8dcb2a10SAndre Fischer mpMTRTransparent->Disable(); 764*8dcb2a10SAndre Fischer mpMTRTransparent->Show(); 765*8dcb2a10SAndre Fischer mpBTNGradient->Disable(); 766*8dcb2a10SAndre Fischer mpBTNGradient->Hide(); 767*8dcb2a10SAndre Fischer } 768*8dcb2a10SAndre Fischer 769*8dcb2a10SAndre Fischer 770*8dcb2a10SAndre Fischer } 771*8dcb2a10SAndre Fischer 772*8dcb2a10SAndre Fischer void AreaPropertyPanel::NotifyItemUpdate( 773*8dcb2a10SAndre Fischer sal_uInt16 nSID, 774*8dcb2a10SAndre Fischer SfxItemState eState, 775*8dcb2a10SAndre Fischer const SfxPoolItem* pState) 776*8dcb2a10SAndre Fischer { 777*8dcb2a10SAndre Fischer XFillStyle eXFS; 778*8dcb2a10SAndre Fischer SfxObjectShell* pSh = SfxObjectShell::Current(); 779*8dcb2a10SAndre Fischer bool bFillTransparenceChanged(false); 780*8dcb2a10SAndre Fischer 781*8dcb2a10SAndre Fischer if(SID_ATTR_FILL_TRANSPARENCE == nSID) 782*8dcb2a10SAndre Fischer { 783*8dcb2a10SAndre Fischer bFillTransparenceChanged = true; 784*8dcb2a10SAndre Fischer 785*8dcb2a10SAndre Fischer if(eState >= SFX_ITEM_AVAILABLE) 786*8dcb2a10SAndre Fischer { 787*8dcb2a10SAndre Fischer const SfxUInt16Item* pItem = dynamic_cast< const SfxUInt16Item* >(pState); 788*8dcb2a10SAndre Fischer 789*8dcb2a10SAndre Fischer if(pItem && (!mpTransparanceItem || *pItem != *mpTransparanceItem)) 790*8dcb2a10SAndre Fischer { 791*8dcb2a10SAndre Fischer mpTransparanceItem.reset((SfxUInt16Item*)pItem->Clone()); 792*8dcb2a10SAndre Fischer } 793*8dcb2a10SAndre Fischer else 794*8dcb2a10SAndre Fischer { 795*8dcb2a10SAndre Fischer mpTransparanceItem.reset(); 796*8dcb2a10SAndre Fischer } 797*8dcb2a10SAndre Fischer } 798*8dcb2a10SAndre Fischer else 799*8dcb2a10SAndre Fischer { 800*8dcb2a10SAndre Fischer mpTransparanceItem.reset(); 801*8dcb2a10SAndre Fischer } 802*8dcb2a10SAndre Fischer } 803*8dcb2a10SAndre Fischer else if(SID_ATTR_FILL_FLOATTRANSPARENCE == nSID) 804*8dcb2a10SAndre Fischer { 805*8dcb2a10SAndre Fischer bFillTransparenceChanged = true; 806*8dcb2a10SAndre Fischer 807*8dcb2a10SAndre Fischer if(eState >= SFX_ITEM_AVAILABLE) 808*8dcb2a10SAndre Fischer { 809*8dcb2a10SAndre Fischer const XFillFloatTransparenceItem* pItem = dynamic_cast< const XFillFloatTransparenceItem* >(pState); 810*8dcb2a10SAndre Fischer 811*8dcb2a10SAndre Fischer if(pItem && (!mpFloatTransparenceItem || *pItem != *mpFloatTransparenceItem)) 812*8dcb2a10SAndre Fischer { 813*8dcb2a10SAndre Fischer mpFloatTransparenceItem.reset((XFillFloatTransparenceItem*)pItem->Clone()); 814*8dcb2a10SAndre Fischer } 815*8dcb2a10SAndre Fischer else 816*8dcb2a10SAndre Fischer { 817*8dcb2a10SAndre Fischer mpFloatTransparenceItem.reset(); 818*8dcb2a10SAndre Fischer } 819*8dcb2a10SAndre Fischer } 820*8dcb2a10SAndre Fischer else 821*8dcb2a10SAndre Fischer { 822*8dcb2a10SAndre Fischer mpFloatTransparenceItem.reset(); 823*8dcb2a10SAndre Fischer } 824*8dcb2a10SAndre Fischer } 825*8dcb2a10SAndre Fischer 826*8dcb2a10SAndre Fischer if(bFillTransparenceChanged) 827*8dcb2a10SAndre Fischer { 828*8dcb2a10SAndre Fischer // update transparency settings dependent of mpTransparanceItem and mpFloatTransparenceItem 829*8dcb2a10SAndre Fischer ImpUpdateTransparencies(); 830*8dcb2a10SAndre Fischer } 831*8dcb2a10SAndre Fischer 832*8dcb2a10SAndre Fischer if (nSID == SID_ATTR_FILL_STYLE ) 833*8dcb2a10SAndre Fischer { 834*8dcb2a10SAndre Fischer if( eState == SFX_ITEM_DISABLED ) 835*8dcb2a10SAndre Fischer { 836*8dcb2a10SAndre Fischer mpLbFillType->Disable(); 837*8dcb2a10SAndre Fischer mpLbFillType->SetNoSelection(); 838*8dcb2a10SAndre Fischer mpLbFillAttr->Show(); 839*8dcb2a10SAndre Fischer mpLbFillAttr->Disable(); 840*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 841*8dcb2a10SAndre Fischer mpToolBoxColor->Hide(); 842*8dcb2a10SAndre Fischer mbTBShow = false; 843*8dcb2a10SAndre Fischer meLastXFS = -1; 844*8dcb2a10SAndre Fischer mpStyleItem.reset(); 845*8dcb2a10SAndre Fischer } 846*8dcb2a10SAndre Fischer else if( SFX_ITEM_AVAILABLE == eState ) 847*8dcb2a10SAndre Fischer { 848*8dcb2a10SAndre Fischer mpStyleItem.reset(pState ? (XFillStyleItem*)pState->Clone() : 0); 849*8dcb2a10SAndre Fischer mpLbFillType->Enable(); 850*8dcb2a10SAndre Fischer 851*8dcb2a10SAndre Fischer eXFS = (XFillStyle)mpStyleItem->GetValue(); 852*8dcb2a10SAndre Fischer meLastXFS = eXFS; 853*8dcb2a10SAndre Fischer mpLbFillType->SelectEntryPos( 854*8dcb2a10SAndre Fischer sal::static_int_cast< sal_uInt16 >( eXFS ) ); 855*8dcb2a10SAndre Fischer //Added for select invisable 856*8dcb2a10SAndre Fischer if(eXFS == XFILL_NONE) 857*8dcb2a10SAndre Fischer { 858*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 859*8dcb2a10SAndre Fischer mpLbFillAttr->Disable(); 860*8dcb2a10SAndre Fischer } 861*8dcb2a10SAndre Fischer //else 862*8dcb2a10SAndre Fischer // mpLbFillAttr->Enable(); 863*8dcb2a10SAndre Fischer Update(); 864*8dcb2a10SAndre Fischer //SelectFillTypeHdl( NULL ); 865*8dcb2a10SAndre Fischer } 866*8dcb2a10SAndre Fischer else 867*8dcb2a10SAndre Fischer { 868*8dcb2a10SAndre Fischer mpLbFillType->SetNoSelection(); 869*8dcb2a10SAndre Fischer mpLbFillAttr->Show(); 870*8dcb2a10SAndre Fischer mpLbFillAttr->Disable(); 871*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 872*8dcb2a10SAndre Fischer mpToolBoxColor->Hide(); 873*8dcb2a10SAndre Fischer mbTBShow = false; 874*8dcb2a10SAndre Fischer meLastXFS = -1; //Added 875*8dcb2a10SAndre Fischer mpStyleItem.reset(); 876*8dcb2a10SAndre Fischer } 877*8dcb2a10SAndre Fischer } 878*8dcb2a10SAndre Fischer else if(nSID == SID_ATTR_FILL_COLOR) 879*8dcb2a10SAndre Fischer { 880*8dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 881*8dcb2a10SAndre Fischer { 882*8dcb2a10SAndre Fischer mpColorItem.reset(pState ? (XFillColorItem*)pState->Clone() : 0); 883*8dcb2a10SAndre Fischer } 884*8dcb2a10SAndre Fischer if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_SOLID) 885*8dcb2a10SAndre Fischer { 886*8dcb2a10SAndre Fischer mpLbFillAttr->Hide(); 887*8dcb2a10SAndre Fischer mpToolBoxColor->Show(); 888*8dcb2a10SAndre Fischer mbTBShow = true; 889*8dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 890*8dcb2a10SAndre Fischer { 891*8dcb2a10SAndre Fischer mpToolBoxColor->Enable(); 892*8dcb2a10SAndre Fischer mbColorAvail = true; // 893*8dcb2a10SAndre Fischer // maLastColor = mpColorItem->GetColorValue(); 894*8dcb2a10SAndre Fischer Update(); 895*8dcb2a10SAndre Fischer } 896*8dcb2a10SAndre Fischer else if(SFX_ITEM_DISABLED == eState ) 897*8dcb2a10SAndre Fischer { 898*8dcb2a10SAndre Fischer mpToolBoxColor->Disable(); 899*8dcb2a10SAndre Fischer mbColorAvail = false; // 900*8dcb2a10SAndre Fischer mpColorUpdater->Update(COL_WHITE); 901*8dcb2a10SAndre Fischer } 902*8dcb2a10SAndre Fischer else 903*8dcb2a10SAndre Fischer { 904*8dcb2a10SAndre Fischer mbColorAvail = false; // 905*8dcb2a10SAndre Fischer mpColorUpdater->Update(COL_WHITE); 906*8dcb2a10SAndre Fischer } 907*8dcb2a10SAndre Fischer } 908*8dcb2a10SAndre Fischer } 909*8dcb2a10SAndre Fischer else if(nSID == SID_ATTR_FILL_GRADIENT) 910*8dcb2a10SAndre Fischer { 911*8dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 912*8dcb2a10SAndre Fischer { 913*8dcb2a10SAndre Fischer mpFillGradientItem.reset(pState ? (XFillGradientItem*)pState->Clone() : 0); 914*8dcb2a10SAndre Fischer } 915*8dcb2a10SAndre Fischer if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_GRADIENT ) 916*8dcb2a10SAndre Fischer { 917*8dcb2a10SAndre Fischer mpLbFillAttr->Show(); 918*8dcb2a10SAndre Fischer mpToolBoxColor->Hide(); 919*8dcb2a10SAndre Fischer mbTBShow = false; 920*8dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 921*8dcb2a10SAndre Fischer { 922*8dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 923*8dcb2a10SAndre Fischer Update(); 924*8dcb2a10SAndre Fischer } 925*8dcb2a10SAndre Fischer 926*8dcb2a10SAndre Fischer else if(SFX_ITEM_DISABLED == eState ) 927*8dcb2a10SAndre Fischer { 928*8dcb2a10SAndre Fischer mpLbFillAttr->Disable(); 929*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 930*8dcb2a10SAndre Fischer } 931*8dcb2a10SAndre Fischer else 932*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 933*8dcb2a10SAndre Fischer } 934*8dcb2a10SAndre Fischer } 935*8dcb2a10SAndre Fischer else if(nSID == SID_ATTR_FILL_HATCH) 936*8dcb2a10SAndre Fischer { 937*8dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 938*8dcb2a10SAndre Fischer { 939*8dcb2a10SAndre Fischer mpHatchItem.reset(pState ? (XFillHatchItem*)pState->Clone() : 0); 940*8dcb2a10SAndre Fischer } 941*8dcb2a10SAndre Fischer if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_HATCH ) 942*8dcb2a10SAndre Fischer { 943*8dcb2a10SAndre Fischer mpLbFillAttr->Show(); 944*8dcb2a10SAndre Fischer mpToolBoxColor->Hide(); 945*8dcb2a10SAndre Fischer mbTBShow = false; 946*8dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 947*8dcb2a10SAndre Fischer { 948*8dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 949*8dcb2a10SAndre Fischer Update(); 950*8dcb2a10SAndre Fischer } 951*8dcb2a10SAndre Fischer else if(SFX_ITEM_DISABLED == eState ) 952*8dcb2a10SAndre Fischer { 953*8dcb2a10SAndre Fischer mpLbFillAttr->Disable(); 954*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 955*8dcb2a10SAndre Fischer } 956*8dcb2a10SAndre Fischer else 957*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 958*8dcb2a10SAndre Fischer } 959*8dcb2a10SAndre Fischer } 960*8dcb2a10SAndre Fischer else if(nSID == SID_ATTR_FILL_BITMAP) 961*8dcb2a10SAndre Fischer { 962*8dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 963*8dcb2a10SAndre Fischer { 964*8dcb2a10SAndre Fischer mpBitmapItem.reset(pState ? (XFillBitmapItem*)pState->Clone() : 0); 965*8dcb2a10SAndre Fischer } 966*8dcb2a10SAndre Fischer if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_BITMAP ) 967*8dcb2a10SAndre Fischer { 968*8dcb2a10SAndre Fischer mpLbFillAttr->Show(); 969*8dcb2a10SAndre Fischer mpToolBoxColor->Hide(); 970*8dcb2a10SAndre Fischer mbTBShow = false; 971*8dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 972*8dcb2a10SAndre Fischer { 973*8dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 974*8dcb2a10SAndre Fischer Update(); 975*8dcb2a10SAndre Fischer } 976*8dcb2a10SAndre Fischer else if(SFX_ITEM_DISABLED == eState ) 977*8dcb2a10SAndre Fischer { 978*8dcb2a10SAndre Fischer mpLbFillAttr->Disable(); 979*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 980*8dcb2a10SAndre Fischer } 981*8dcb2a10SAndre Fischer else 982*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 983*8dcb2a10SAndre Fischer } 984*8dcb2a10SAndre Fischer } 985*8dcb2a10SAndre Fischer else if(nSID == SID_COLOR_TABLE) 986*8dcb2a10SAndre Fischer { 987*8dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 988*8dcb2a10SAndre Fischer { 989*8dcb2a10SAndre Fischer mpColorTableItem.reset(pState ? (SvxColorTableItem*)pState->Clone() : 0); 990*8dcb2a10SAndre Fischer 991*8dcb2a10SAndre Fischer if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue()== XFILL_SOLID) 992*8dcb2a10SAndre Fischer { 993*8dcb2a10SAndre Fischer if ( mpColorItem ) 994*8dcb2a10SAndre Fischer { 995*8dcb2a10SAndre Fischer String aString( mpColorItem->GetName() ); 996*8dcb2a10SAndre Fischer Color aColor = mpColorItem->GetColorValue(); 997*8dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 998*8dcb2a10SAndre Fischer SvxColorTableItem aItem( *(const SvxColorTableItem*)( 999*8dcb2a10SAndre Fischer pSh->GetItem( SID_COLOR_TABLE ) ) ); 1000*8dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 1001*8dcb2a10SAndre Fischer mpLbFillAttr->Fill( aItem.GetColorTable() ); 1002*8dcb2a10SAndre Fischer mpLbFillAttr->SelectEntry( aColor ); 1003*8dcb2a10SAndre Fischer } 1004*8dcb2a10SAndre Fischer else 1005*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 1006*8dcb2a10SAndre Fischer } 1007*8dcb2a10SAndre Fischer } 1008*8dcb2a10SAndre Fischer } 1009*8dcb2a10SAndre Fischer else if(nSID == SID_GRADIENT_LIST) 1010*8dcb2a10SAndre Fischer { 1011*8dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 1012*8dcb2a10SAndre Fischer { 1013*8dcb2a10SAndre Fischer mpGradientListItem.reset(pState ? (SvxGradientListItem*)pState->Clone() : 0); 1014*8dcb2a10SAndre Fischer 1015*8dcb2a10SAndre Fischer if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_GRADIENT) 1016*8dcb2a10SAndre Fischer { 1017*8dcb2a10SAndre Fischer if ( mpFillGradientItem ) 1018*8dcb2a10SAndre Fischer { 1019*8dcb2a10SAndre Fischer String aString( mpFillGradientItem->GetName() ); 1020*8dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 1021*8dcb2a10SAndre Fischer SvxGradientListItem aItem( *(const SvxGradientListItem*)( 1022*8dcb2a10SAndre Fischer pSh->GetItem( SID_GRADIENT_LIST ) ) ); 1023*8dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 1024*8dcb2a10SAndre Fischer mpLbFillAttr->Fill( aItem.GetGradientList() ); 1025*8dcb2a10SAndre Fischer mpLbFillAttr->SelectEntry( aString ); 1026*8dcb2a10SAndre Fischer } 1027*8dcb2a10SAndre Fischer else 1028*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 1029*8dcb2a10SAndre Fischer } 1030*8dcb2a10SAndre Fischer } 1031*8dcb2a10SAndre Fischer } 1032*8dcb2a10SAndre Fischer else if(nSID == SID_HATCH_LIST) 1033*8dcb2a10SAndre Fischer { 1034*8dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 1035*8dcb2a10SAndre Fischer { 1036*8dcb2a10SAndre Fischer mpHatchListItem.reset(pState ? (SvxHatchListItem*)pState->Clone() : 0); 1037*8dcb2a10SAndre Fischer 1038*8dcb2a10SAndre Fischer if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_HATCH ) 1039*8dcb2a10SAndre Fischer { 1040*8dcb2a10SAndre Fischer if ( mpHatchItem) 1041*8dcb2a10SAndre Fischer { 1042*8dcb2a10SAndre Fischer String aString( mpHatchItem->GetName() ); 1043*8dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 1044*8dcb2a10SAndre Fischer SvxHatchListItem aItem( *(const SvxHatchListItem*)( 1045*8dcb2a10SAndre Fischer pSh->GetItem( SID_HATCH_LIST ) ) ); 1046*8dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 1047*8dcb2a10SAndre Fischer mpLbFillAttr->Fill( aItem.GetHatchList() ); 1048*8dcb2a10SAndre Fischer mpLbFillAttr->SelectEntry( aString ); 1049*8dcb2a10SAndre Fischer } 1050*8dcb2a10SAndre Fischer else 1051*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 1052*8dcb2a10SAndre Fischer } 1053*8dcb2a10SAndre Fischer } 1054*8dcb2a10SAndre Fischer } 1055*8dcb2a10SAndre Fischer else if(nSID == SID_BITMAP_LIST) 1056*8dcb2a10SAndre Fischer { 1057*8dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 1058*8dcb2a10SAndre Fischer { 1059*8dcb2a10SAndre Fischer mpBitmapListItem.reset(pState ? (SvxBitmapListItem*)pState->Clone() : 0); 1060*8dcb2a10SAndre Fischer 1061*8dcb2a10SAndre Fischer if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_BITMAP ) 1062*8dcb2a10SAndre Fischer { 1063*8dcb2a10SAndre Fischer if ( mpBitmapItem ) 1064*8dcb2a10SAndre Fischer { 1065*8dcb2a10SAndre Fischer String aString( mpBitmapItem->GetName() ); 1066*8dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 1067*8dcb2a10SAndre Fischer SvxBitmapListItem aItem( *(const SvxBitmapListItem*)( 1068*8dcb2a10SAndre Fischer pSh->GetItem( SID_BITMAP_LIST ) ) ); 1069*8dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 1070*8dcb2a10SAndre Fischer mpLbFillAttr->Fill( aItem.GetBitmapList() ); 1071*8dcb2a10SAndre Fischer mpLbFillAttr->SelectEntry( aString ); 1072*8dcb2a10SAndre Fischer } 1073*8dcb2a10SAndre Fischer else 1074*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 1075*8dcb2a10SAndre Fischer } 1076*8dcb2a10SAndre Fischer } 1077*8dcb2a10SAndre Fischer } 1078*8dcb2a10SAndre Fischer } 1079*8dcb2a10SAndre Fischer 1080*8dcb2a10SAndre Fischer 1081*8dcb2a10SAndre Fischer 1082*8dcb2a10SAndre Fischer SfxBindings* AreaPropertyPanel::GetBindings() 1083*8dcb2a10SAndre Fischer { 1084*8dcb2a10SAndre Fischer return mpBindings; 1085*8dcb2a10SAndre Fischer } 1086*8dcb2a10SAndre Fischer 1087*8dcb2a10SAndre Fischer 1088*8dcb2a10SAndre Fischer 1089*8dcb2a10SAndre Fischer void AreaPropertyPanel::Update() 1090*8dcb2a10SAndre Fischer { 1091*8dcb2a10SAndre Fischer if ( mpStyleItem ) 1092*8dcb2a10SAndre Fischer { 1093*8dcb2a10SAndre Fischer XFillStyle eXFS = (XFillStyle)mpStyleItem->GetValue(); 1094*8dcb2a10SAndre Fischer SfxObjectShell* pSh = SfxObjectShell::Current(); 1095*8dcb2a10SAndre Fischer 1096*8dcb2a10SAndre Fischer switch( eXFS ) 1097*8dcb2a10SAndre Fischer { 1098*8dcb2a10SAndre Fischer case XFILL_NONE: 1099*8dcb2a10SAndre Fischer { 1100*8dcb2a10SAndre Fischer mpLbFillAttr->Show(); //wj for new color picker 1101*8dcb2a10SAndre Fischer mpToolBoxColor->Hide(); //wj for new color picker 1102*8dcb2a10SAndre Fischer mbTBShow = false; 1103*8dcb2a10SAndre Fischer } 1104*8dcb2a10SAndre Fischer break; 1105*8dcb2a10SAndre Fischer 1106*8dcb2a10SAndre Fischer case XFILL_SOLID: 1107*8dcb2a10SAndre Fischer { 1108*8dcb2a10SAndre Fischer if ( mpColorItem ) 1109*8dcb2a10SAndre Fischer { 1110*8dcb2a10SAndre Fischer mpLbFillAttr->Hide(); //wj for new color picker 1111*8dcb2a10SAndre Fischer mpToolBoxColor->Show(); //wj for new color picker 1112*8dcb2a10SAndre Fischer mbTBShow = true; 1113*8dcb2a10SAndre Fischer mpColorUpdater->Update(mpColorItem->GetColorValue()); 1114*8dcb2a10SAndre Fischer } 1115*8dcb2a10SAndre Fischer else 1116*8dcb2a10SAndre Fischer mpColorUpdater->Update(COL_WHITE); 1117*8dcb2a10SAndre Fischer } 1118*8dcb2a10SAndre Fischer break; 1119*8dcb2a10SAndre Fischer 1120*8dcb2a10SAndre Fischer case XFILL_GRADIENT: 1121*8dcb2a10SAndre Fischer { 1122*8dcb2a10SAndre Fischer mpLbFillAttr->Show(); //wj for new color picker 1123*8dcb2a10SAndre Fischer mpToolBoxColor->Hide(); //wj for new color picker 1124*8dcb2a10SAndre Fischer mbTBShow = false; 1125*8dcb2a10SAndre Fischer if ( pSh && pSh->GetItem( SID_GRADIENT_LIST ) ) 1126*8dcb2a10SAndre Fischer { 1127*8dcb2a10SAndre Fischer SvxGradientListItem aItem( *(const SvxGradientListItem*)( 1128*8dcb2a10SAndre Fischer pSh->GetItem( SID_GRADIENT_LIST ) ) ); 1129*8dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 1130*8dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 1131*8dcb2a10SAndre Fischer mpLbFillAttr->Fill( aItem.GetGradientList() ); 1132*8dcb2a10SAndre Fischer if ( mpFillGradientItem ) 1133*8dcb2a10SAndre Fischer { 1134*8dcb2a10SAndre Fischer String aString( mpFillGradientItem->GetName() ); 1135*8dcb2a10SAndre Fischer mpLbFillAttr->SelectEntry( aString ); 1136*8dcb2a10SAndre Fischer } 1137*8dcb2a10SAndre Fischer else 1138*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 1139*8dcb2a10SAndre Fischer } 1140*8dcb2a10SAndre Fischer else 1141*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 1142*8dcb2a10SAndre Fischer } 1143*8dcb2a10SAndre Fischer break; 1144*8dcb2a10SAndre Fischer 1145*8dcb2a10SAndre Fischer case XFILL_HATCH: 1146*8dcb2a10SAndre Fischer { 1147*8dcb2a10SAndre Fischer mpLbFillAttr->Show(); //wj for new color picker 1148*8dcb2a10SAndre Fischer mpToolBoxColor->Hide(); //wj for new color picker 1149*8dcb2a10SAndre Fischer mbTBShow = false; 1150*8dcb2a10SAndre Fischer if ( pSh && pSh->GetItem( SID_HATCH_LIST ) ) 1151*8dcb2a10SAndre Fischer { 1152*8dcb2a10SAndre Fischer SvxHatchListItem aItem( *(const SvxHatchListItem*)( 1153*8dcb2a10SAndre Fischer pSh->GetItem( SID_HATCH_LIST ) ) ); 1154*8dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 1155*8dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 1156*8dcb2a10SAndre Fischer mpLbFillAttr->Fill( aItem.GetHatchList() ); 1157*8dcb2a10SAndre Fischer if ( mpHatchItem ) 1158*8dcb2a10SAndre Fischer { 1159*8dcb2a10SAndre Fischer String aString( mpHatchItem->GetName() ); 1160*8dcb2a10SAndre Fischer mpLbFillAttr->SelectEntry( aString ); 1161*8dcb2a10SAndre Fischer } 1162*8dcb2a10SAndre Fischer else 1163*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 1164*8dcb2a10SAndre Fischer } 1165*8dcb2a10SAndre Fischer else 1166*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 1167*8dcb2a10SAndre Fischer } 1168*8dcb2a10SAndre Fischer break; 1169*8dcb2a10SAndre Fischer 1170*8dcb2a10SAndre Fischer case XFILL_BITMAP: 1171*8dcb2a10SAndre Fischer { 1172*8dcb2a10SAndre Fischer mpLbFillAttr->Show(); //wj for new color picker 1173*8dcb2a10SAndre Fischer mpToolBoxColor->Hide(); //wj for new color picker 1174*8dcb2a10SAndre Fischer mbTBShow = false; 1175*8dcb2a10SAndre Fischer //mpLbFillAttr->Fill( mpBitmapListItem->GetBitmapList() ); 1176*8dcb2a10SAndre Fischer if ( pSh && pSh->GetItem( SID_BITMAP_LIST ) ) 1177*8dcb2a10SAndre Fischer { 1178*8dcb2a10SAndre Fischer SvxBitmapListItem aItem( *(const SvxBitmapListItem*)( 1179*8dcb2a10SAndre Fischer pSh->GetItem( SID_BITMAP_LIST ) ) ); 1180*8dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 1181*8dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 1182*8dcb2a10SAndre Fischer mpLbFillAttr->Fill( aItem.GetBitmapList() ); 1183*8dcb2a10SAndre Fischer if ( mpBitmapItem ) 1184*8dcb2a10SAndre Fischer { 1185*8dcb2a10SAndre Fischer String aString( mpBitmapItem->GetName() ); 1186*8dcb2a10SAndre Fischer mpLbFillAttr->SelectEntry( aString ); 1187*8dcb2a10SAndre Fischer } 1188*8dcb2a10SAndre Fischer else 1189*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 1190*8dcb2a10SAndre Fischer } 1191*8dcb2a10SAndre Fischer else 1192*8dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 1193*8dcb2a10SAndre Fischer } 1194*8dcb2a10SAndre Fischer break; 1195*8dcb2a10SAndre Fischer 1196*8dcb2a10SAndre Fischer default: 1197*8dcb2a10SAndre Fischer DBG_ERROR( "Nicht unterstuetzter Flaechentyp" ); 1198*8dcb2a10SAndre Fischer break; 1199*8dcb2a10SAndre Fischer } 1200*8dcb2a10SAndre Fischer } 1201*8dcb2a10SAndre Fischer } 1202*8dcb2a10SAndre Fischer 1203*8dcb2a10SAndre Fischer 1204*8dcb2a10SAndre Fischer 1205*8dcb2a10SAndre Fischer IMPL_LINK( AreaPropertyPanel, ImplPopupModeEndHdl, FloatingWindow*, EMPTYARG ) 1206*8dcb2a10SAndre Fischer { 1207*8dcb2a10SAndre Fischer return 0; 1208*8dcb2a10SAndre Fischer } 1209*8dcb2a10SAndre Fischer 1210*8dcb2a10SAndre Fischer 1211*8dcb2a10SAndre Fischer 1212*8dcb2a10SAndre Fischer IMPL_LINK( AreaPropertyPanel, ClickTrGrHdl_Impl, ToolBox*, pToolBox ) 1213*8dcb2a10SAndre Fischer { 1214*8dcb2a10SAndre Fischer maTrGrPopup.Rearrange(mpFloatTransparenceItem.get()); 1215*8dcb2a10SAndre Fischer 1216*8dcb2a10SAndre Fischer OSL_ASSERT(pToolBox->GetCurItemId() == TBI_BTX_GRADIENT); 1217*8dcb2a10SAndre Fischer 1218*8dcb2a10SAndre Fischer maTrGrPopup.Show(*pToolBox); 1219*8dcb2a10SAndre Fischer 1220*8dcb2a10SAndre Fischer return (0L); 1221*8dcb2a10SAndre Fischer } 1222*8dcb2a10SAndre Fischer 1223*8dcb2a10SAndre Fischer 1224*8dcb2a10SAndre Fischer 1225*8dcb2a10SAndre Fischer IMPL_LINK(AreaPropertyPanel, ChangeTrgrTypeHdl_Impl, void *, EMPTYARG) 1226*8dcb2a10SAndre Fischer { 1227*8dcb2a10SAndre Fischer sal_uInt16 nSelectType = mpLBTransType->GetSelectEntryPos(); 1228*8dcb2a10SAndre Fischer bool bGradient = false; 1229*8dcb2a10SAndre Fischer sal_uInt16 nTrans = 0; 1230*8dcb2a10SAndre Fischer 1231*8dcb2a10SAndre Fischer if (nSelectType == 0) 1232*8dcb2a10SAndre Fischer { 1233*8dcb2a10SAndre Fischer mpBTNGradient->Hide(); 1234*8dcb2a10SAndre Fischer mpMTRTransparent->Show(); 1235*8dcb2a10SAndre Fischer mpMTRTransparent->Enable(); 1236*8dcb2a10SAndre Fischer mpMTRTransparent->SetValue(0); 1237*8dcb2a10SAndre Fischer } 1238*8dcb2a10SAndre Fischer else if (nSelectType == 1) 1239*8dcb2a10SAndre Fischer { 1240*8dcb2a10SAndre Fischer mpBTNGradient->Hide(); 1241*8dcb2a10SAndre Fischer mpMTRTransparent->Show(); 1242*8dcb2a10SAndre Fischer nTrans = mnLastTransSolid; 1243*8dcb2a10SAndre Fischer mpMTRTransparent->SetValue(nTrans); 1244*8dcb2a10SAndre Fischer mpLBTransType->SelectEntryPos(1);// for multi-selected, choose solid no selection 1245*8dcb2a10SAndre Fischer mpMTRTransparent->Enable(); 1246*8dcb2a10SAndre Fischer } 1247*8dcb2a10SAndre Fischer else 1248*8dcb2a10SAndre Fischer { 1249*8dcb2a10SAndre Fischer mpBTNGradient->Show(); 1250*8dcb2a10SAndre Fischer //for beta1 1251*8dcb2a10SAndre Fischer switch ( nSelectType ) 1252*8dcb2a10SAndre Fischer { 1253*8dcb2a10SAndre Fischer case 2: 1254*8dcb2a10SAndre Fischer mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgLinearH : maImgLinear); // high contrast 1255*8dcb2a10SAndre Fischer break; 1256*8dcb2a10SAndre Fischer case 3: 1257*8dcb2a10SAndre Fischer mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgAxialH : maImgAxial); 1258*8dcb2a10SAndre Fischer break; 1259*8dcb2a10SAndre Fischer case 4: 1260*8dcb2a10SAndre Fischer mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgRadialH : maImgRadial); 1261*8dcb2a10SAndre Fischer break; 1262*8dcb2a10SAndre Fischer case 5: 1263*8dcb2a10SAndre Fischer mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgElliH : maImgElli ); 1264*8dcb2a10SAndre Fischer break; 1265*8dcb2a10SAndre Fischer case 6: 1266*8dcb2a10SAndre Fischer mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgQuadH : maImgQuad ); 1267*8dcb2a10SAndre Fischer break; 1268*8dcb2a10SAndre Fischer case 7: 1269*8dcb2a10SAndre Fischer mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgSquareH : maImgSquare); 1270*8dcb2a10SAndre Fischer break; 1271*8dcb2a10SAndre Fischer } 1272*8dcb2a10SAndre Fischer //end of new code 1273*8dcb2a10SAndre Fischer mpMTRTransparent->Hide(); 1274*8dcb2a10SAndre Fischer mpBTNGradient->Enable(); 1275*8dcb2a10SAndre Fischer bGradient = true; 1276*8dcb2a10SAndre Fischer } 1277*8dcb2a10SAndre Fischer 1278*8dcb2a10SAndre Fischer XFillTransparenceItem aLinearItem(nTrans); 1279*8dcb2a10SAndre Fischer GetBindings()->GetDispatcher()->Execute( SID_ATTR_FILL_TRANSPARENCE, SFX_CALLMODE_RECORD, &aLinearItem, 0L ); 1280*8dcb2a10SAndre Fischer 1281*8dcb2a10SAndre Fischer if (nSelectType > 1) nSelectType = nSelectType-2; 1282*8dcb2a10SAndre Fischer 1283*8dcb2a10SAndre Fischer XGradient aTmpGradient; 1284*8dcb2a10SAndre Fischer 1285*8dcb2a10SAndre Fischer switch(nSelectType) 1286*8dcb2a10SAndre Fischer { 1287*8dcb2a10SAndre Fischer case XGRAD_LINEAR: 1288*8dcb2a10SAndre Fischer aTmpGradient = maGradientLinear; 1289*8dcb2a10SAndre Fischer break; 1290*8dcb2a10SAndre Fischer case XGRAD_AXIAL: 1291*8dcb2a10SAndre Fischer aTmpGradient = maGradientAxial; 1292*8dcb2a10SAndre Fischer break; 1293*8dcb2a10SAndre Fischer case XGRAD_RADIAL: 1294*8dcb2a10SAndre Fischer aTmpGradient = maGradientRadial; 1295*8dcb2a10SAndre Fischer break; 1296*8dcb2a10SAndre Fischer case XGRAD_ELLIPTICAL: 1297*8dcb2a10SAndre Fischer aTmpGradient = maGradientElliptical; 1298*8dcb2a10SAndre Fischer break; 1299*8dcb2a10SAndre Fischer case XGRAD_SQUARE: 1300*8dcb2a10SAndre Fischer aTmpGradient = maGradientSquare; 1301*8dcb2a10SAndre Fischer break; 1302*8dcb2a10SAndre Fischer case XGRAD_RECT: 1303*8dcb2a10SAndre Fischer aTmpGradient = maGradientRect; 1304*8dcb2a10SAndre Fischer break; 1305*8dcb2a10SAndre Fischer } 1306*8dcb2a10SAndre Fischer SfxItemPool* pPool = NULL; 1307*8dcb2a10SAndre Fischer bool bEnable = false; 1308*8dcb2a10SAndre Fischer if (bGradient) bEnable = true; 1309*8dcb2a10SAndre Fischer XFillFloatTransparenceItem aGradientItem(pPool,aTmpGradient, bEnable ); 1310*8dcb2a10SAndre Fischer 1311*8dcb2a10SAndre Fischer GetBindings()->GetDispatcher()->Execute( SID_ATTR_FILL_FLOATTRANSPARENCE, SFX_CALLMODE_RECORD, &aGradientItem, 0L ); 1312*8dcb2a10SAndre Fischer 1313*8dcb2a10SAndre Fischer return( 0L ); 1314*8dcb2a10SAndre Fischer } 1315*8dcb2a10SAndre Fischer 1316*8dcb2a10SAndre Fischer 1317*8dcb2a10SAndre Fischer 1318*8dcb2a10SAndre Fischer IMPL_LINK(AreaPropertyPanel, ModifyTransparentHdl_Impl, void*, EMPTYARG) 1319*8dcb2a10SAndre Fischer { 1320*8dcb2a10SAndre Fischer sal_uInt16 nTrans = (sal_uInt16)mpMTRTransparent->GetValue(); 1321*8dcb2a10SAndre Fischer mnLastTransSolid = nTrans; 1322*8dcb2a10SAndre Fischer sal_uInt16 nSelectType = mpLBTransType->GetSelectEntryPos(); 1323*8dcb2a10SAndre Fischer if (nTrans != 0 && nSelectType == 0) 1324*8dcb2a10SAndre Fischer mpLBTransType->SelectEntryPos(1); 1325*8dcb2a10SAndre Fischer XFillTransparenceItem aLinearItem(nTrans); 1326*8dcb2a10SAndre Fischer GetBindings()->GetDispatcher()->Execute( SID_ATTR_FILL_TRANSPARENCE, SFX_CALLMODE_RECORD, &aLinearItem, 0L ); 1327*8dcb2a10SAndre Fischer 1328*8dcb2a10SAndre Fischer return 0L; 1329*8dcb2a10SAndre Fischer } 1330*8dcb2a10SAndre Fischer 1331*8dcb2a10SAndre Fischer 1332*8dcb2a10SAndre Fischer Color AreaPropertyPanel::GetLastColor (void) const 1333*8dcb2a10SAndre Fischer { 1334*8dcb2a10SAndre Fischer return maLastColor; 1335*8dcb2a10SAndre Fischer } 1336*8dcb2a10SAndre Fischer 1337*8dcb2a10SAndre Fischer 1338*8dcb2a10SAndre Fischer 1339*8dcb2a10SAndre Fischer 1340*8dcb2a10SAndre Fischer XGradient AreaPropertyPanel::GetGradient (const XGradientStyle eStyle) const 1341*8dcb2a10SAndre Fischer { 1342*8dcb2a10SAndre Fischer switch (eStyle) 1343*8dcb2a10SAndre Fischer { 1344*8dcb2a10SAndre Fischer default: 1345*8dcb2a10SAndre Fischer case XGRAD_LINEAR: 1346*8dcb2a10SAndre Fischer return maGradientLinear; 1347*8dcb2a10SAndre Fischer case XGRAD_AXIAL: 1348*8dcb2a10SAndre Fischer return maGradientAxial; 1349*8dcb2a10SAndre Fischer case XGRAD_RADIAL: 1350*8dcb2a10SAndre Fischer return maGradientRadial; 1351*8dcb2a10SAndre Fischer case XGRAD_ELLIPTICAL: 1352*8dcb2a10SAndre Fischer return maGradientElliptical; 1353*8dcb2a10SAndre Fischer case XGRAD_SQUARE: 1354*8dcb2a10SAndre Fischer return maGradientSquare; 1355*8dcb2a10SAndre Fischer case XGRAD_RECT: 1356*8dcb2a10SAndre Fischer return maGradientRect; 1357*8dcb2a10SAndre Fischer } 1358*8dcb2a10SAndre Fischer } 1359*8dcb2a10SAndre Fischer 1360*8dcb2a10SAndre Fischer 1361*8dcb2a10SAndre Fischer 1362*8dcb2a10SAndre Fischer 1363*8dcb2a10SAndre Fischer void AreaPropertyPanel::SetGradient (const XGradient& rGradient) 1364*8dcb2a10SAndre Fischer { 1365*8dcb2a10SAndre Fischer switch (rGradient.GetGradientStyle()) 1366*8dcb2a10SAndre Fischer { 1367*8dcb2a10SAndre Fischer case XGRAD_LINEAR: 1368*8dcb2a10SAndre Fischer maGradientLinear = rGradient; 1369*8dcb2a10SAndre Fischer break; 1370*8dcb2a10SAndre Fischer case XGRAD_AXIAL: 1371*8dcb2a10SAndre Fischer maGradientAxial = rGradient; 1372*8dcb2a10SAndre Fischer break; 1373*8dcb2a10SAndre Fischer case XGRAD_RADIAL: 1374*8dcb2a10SAndre Fischer maGradientRadial = rGradient; 1375*8dcb2a10SAndre Fischer break; 1376*8dcb2a10SAndre Fischer case XGRAD_ELLIPTICAL: 1377*8dcb2a10SAndre Fischer maGradientElliptical = rGradient; 1378*8dcb2a10SAndre Fischer break; 1379*8dcb2a10SAndre Fischer case XGRAD_SQUARE: 1380*8dcb2a10SAndre Fischer maGradientSquare = rGradient; 1381*8dcb2a10SAndre Fischer break; 1382*8dcb2a10SAndre Fischer case XGRAD_RECT: 1383*8dcb2a10SAndre Fischer maGradientRect = rGradient; 1384*8dcb2a10SAndre Fischer break; 1385*8dcb2a10SAndre Fischer } 1386*8dcb2a10SAndre Fischer } 1387*8dcb2a10SAndre Fischer 1388*8dcb2a10SAndre Fischer 1389*8dcb2a10SAndre Fischer 1390*8dcb2a10SAndre Fischer 1391*8dcb2a10SAndre Fischer sal_Int32 AreaPropertyPanel::GetSelectedTransparencyTypeIndex (void) const 1392*8dcb2a10SAndre Fischer { 1393*8dcb2a10SAndre Fischer return mpLBTransType->GetSelectEntryPos(); 1394*8dcb2a10SAndre Fischer } 1395*8dcb2a10SAndre Fischer 1396*8dcb2a10SAndre Fischer } } // end of namespace svx::sidebar 1397