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) 71*ee093554SAndre 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 6798dcb2a10SAndre Fischer maTrGrPopup.Hide(); 6808dcb2a10SAndre Fischer } 6818dcb2a10SAndre Fischer 6828dcb2a10SAndre Fischer if(bZeroValue && mpFloatTransparenceItem.get()) 6838dcb2a10SAndre Fischer { 6848dcb2a10SAndre Fischer if(mpFloatTransparenceItem->IsEnabled()) 6858dcb2a10SAndre Fischer { 6868dcb2a10SAndre Fischer const XGradient& rGradient = mpFloatTransparenceItem->GetGradientValue(); 6878dcb2a10SAndre Fischer const bool bHighContrast(GetSettings().GetStyleSettings().GetHighContrastMode()); 6888dcb2a10SAndre Fischer sal_uInt16 nEntryPos(0); 6898dcb2a10SAndre Fischer Image* pImage = 0; 6908dcb2a10SAndre Fischer 6918dcb2a10SAndre Fischer mpLBTransType->Enable(); 6928dcb2a10SAndre Fischer mpMTRTransparent->Hide(); 6938dcb2a10SAndre Fischer mpBTNGradient->Enable(); 6948dcb2a10SAndre Fischer mpBTNGradient->Show(); 6958dcb2a10SAndre Fischer 6968dcb2a10SAndre Fischer switch(rGradient.GetGradientStyle()) 6978dcb2a10SAndre Fischer { 6988dcb2a10SAndre Fischer case XGRAD_LINEAR: 6998dcb2a10SAndre Fischer { 7008dcb2a10SAndre Fischer nEntryPos = 2; 7018dcb2a10SAndre Fischer pImage = bHighContrast ? &maImgLinearH : &maImgLinear; 7028dcb2a10SAndre Fischer break; 7038dcb2a10SAndre Fischer } 7048dcb2a10SAndre Fischer case XGRAD_AXIAL: 7058dcb2a10SAndre Fischer { 7068dcb2a10SAndre Fischer nEntryPos = 3; 7078dcb2a10SAndre Fischer pImage = bHighContrast ? &maImgAxialH : &maImgAxial; 7088dcb2a10SAndre Fischer break; 7098dcb2a10SAndre Fischer } 7108dcb2a10SAndre Fischer case XGRAD_RADIAL: 7118dcb2a10SAndre Fischer { 7128dcb2a10SAndre Fischer nEntryPos = 4; 7138dcb2a10SAndre Fischer pImage = bHighContrast ? &maImgRadialH : &maImgRadial; 7148dcb2a10SAndre Fischer break; 7158dcb2a10SAndre Fischer } 7168dcb2a10SAndre Fischer case XGRAD_ELLIPTICAL: 7178dcb2a10SAndre Fischer { 7188dcb2a10SAndre Fischer nEntryPos = 5; 7198dcb2a10SAndre Fischer pImage = bHighContrast ? &maImgElliH : &maImgElli; 7208dcb2a10SAndre Fischer break; 7218dcb2a10SAndre Fischer } 7228dcb2a10SAndre Fischer case XGRAD_SQUARE: 7238dcb2a10SAndre Fischer { 7248dcb2a10SAndre Fischer nEntryPos = 6; 7258dcb2a10SAndre Fischer pImage = bHighContrast ? &maImgQuadH : &maImgQuad; 7268dcb2a10SAndre Fischer break; 7278dcb2a10SAndre Fischer } 7288dcb2a10SAndre Fischer case XGRAD_RECT: 7298dcb2a10SAndre Fischer { 7308dcb2a10SAndre Fischer nEntryPos = 7; 7318dcb2a10SAndre Fischer pImage = bHighContrast ? &maImgSquareH : &maImgSquare; 7328dcb2a10SAndre Fischer break; 7338dcb2a10SAndre Fischer } 7348dcb2a10SAndre Fischer } 7358dcb2a10SAndre Fischer 7368dcb2a10SAndre Fischer mpLBTransType->SelectEntryPos(nEntryPos); 7378dcb2a10SAndre Fischer mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT, *pImage); 7388dcb2a10SAndre Fischer bZeroValue = false; 7398dcb2a10SAndre Fischer } 7408dcb2a10SAndre Fischer else 7418dcb2a10SAndre Fischer { 7428dcb2a10SAndre Fischer bZeroValue = true; 7438dcb2a10SAndre Fischer } 7448dcb2a10SAndre Fischer } 7458dcb2a10SAndre Fischer 7468dcb2a10SAndre Fischer if(bZeroValue) 7478dcb2a10SAndre Fischer { 7488dcb2a10SAndre Fischer mpLBTransType->Enable(); 7498dcb2a10SAndre Fischer mpLBTransType->SelectEntryPos(0); 7508dcb2a10SAndre Fischer mpBTNGradient->Hide(); 7518dcb2a10SAndre Fischer mpMTRTransparent->Enable(); 7528dcb2a10SAndre Fischer mpMTRTransparent->Show(); 7538dcb2a10SAndre Fischer mpMTRTransparent->SetValue(0); 7548dcb2a10SAndre Fischer } 7558dcb2a10SAndre Fischer } 7568dcb2a10SAndre Fischer else 7578dcb2a10SAndre Fischer { 7588dcb2a10SAndre Fischer // no transparency at all 7598dcb2a10SAndre Fischer mpLBTransType->SetNoSelection(); 7608dcb2a10SAndre Fischer mpMTRTransparent->Disable(); 7618dcb2a10SAndre Fischer mpMTRTransparent->Show(); 7628dcb2a10SAndre Fischer mpBTNGradient->Disable(); 7638dcb2a10SAndre Fischer mpBTNGradient->Hide(); 7648dcb2a10SAndre Fischer } 7658dcb2a10SAndre Fischer 7668dcb2a10SAndre Fischer 7678dcb2a10SAndre Fischer } 7688dcb2a10SAndre Fischer 7698dcb2a10SAndre Fischer void AreaPropertyPanel::NotifyItemUpdate( 7708dcb2a10SAndre Fischer sal_uInt16 nSID, 7718dcb2a10SAndre Fischer SfxItemState eState, 7728dcb2a10SAndre Fischer const SfxPoolItem* pState) 7738dcb2a10SAndre Fischer { 7748dcb2a10SAndre Fischer XFillStyle eXFS; 7758dcb2a10SAndre Fischer SfxObjectShell* pSh = SfxObjectShell::Current(); 7768dcb2a10SAndre Fischer bool bFillTransparenceChanged(false); 7778dcb2a10SAndre Fischer 7788dcb2a10SAndre Fischer if(SID_ATTR_FILL_TRANSPARENCE == nSID) 7798dcb2a10SAndre Fischer { 7808dcb2a10SAndre Fischer bFillTransparenceChanged = true; 7818dcb2a10SAndre Fischer 7828dcb2a10SAndre Fischer if(eState >= SFX_ITEM_AVAILABLE) 7838dcb2a10SAndre Fischer { 7848dcb2a10SAndre Fischer const SfxUInt16Item* pItem = dynamic_cast< const SfxUInt16Item* >(pState); 7858dcb2a10SAndre Fischer 7868dcb2a10SAndre Fischer if(pItem && (!mpTransparanceItem || *pItem != *mpTransparanceItem)) 7878dcb2a10SAndre Fischer { 7888dcb2a10SAndre Fischer mpTransparanceItem.reset((SfxUInt16Item*)pItem->Clone()); 7898dcb2a10SAndre Fischer } 7908dcb2a10SAndre Fischer else 7918dcb2a10SAndre Fischer { 7928dcb2a10SAndre Fischer mpTransparanceItem.reset(); 7938dcb2a10SAndre Fischer } 7948dcb2a10SAndre Fischer } 7958dcb2a10SAndre Fischer else 7968dcb2a10SAndre Fischer { 7978dcb2a10SAndre Fischer mpTransparanceItem.reset(); 7988dcb2a10SAndre Fischer } 7998dcb2a10SAndre Fischer } 8008dcb2a10SAndre Fischer else if(SID_ATTR_FILL_FLOATTRANSPARENCE == nSID) 8018dcb2a10SAndre Fischer { 8028dcb2a10SAndre Fischer bFillTransparenceChanged = true; 8038dcb2a10SAndre Fischer 8048dcb2a10SAndre Fischer if(eState >= SFX_ITEM_AVAILABLE) 8058dcb2a10SAndre Fischer { 8068dcb2a10SAndre Fischer const XFillFloatTransparenceItem* pItem = dynamic_cast< const XFillFloatTransparenceItem* >(pState); 8078dcb2a10SAndre Fischer 8088dcb2a10SAndre Fischer if(pItem && (!mpFloatTransparenceItem || *pItem != *mpFloatTransparenceItem)) 8098dcb2a10SAndre Fischer { 8108dcb2a10SAndre Fischer mpFloatTransparenceItem.reset((XFillFloatTransparenceItem*)pItem->Clone()); 8118dcb2a10SAndre Fischer } 8128dcb2a10SAndre Fischer else 8138dcb2a10SAndre Fischer { 8148dcb2a10SAndre Fischer mpFloatTransparenceItem.reset(); 8158dcb2a10SAndre Fischer } 8168dcb2a10SAndre Fischer } 8178dcb2a10SAndre Fischer else 8188dcb2a10SAndre Fischer { 8198dcb2a10SAndre Fischer mpFloatTransparenceItem.reset(); 8208dcb2a10SAndre Fischer } 8218dcb2a10SAndre Fischer } 8228dcb2a10SAndre Fischer 8238dcb2a10SAndre Fischer if(bFillTransparenceChanged) 8248dcb2a10SAndre Fischer { 8258dcb2a10SAndre Fischer // update transparency settings dependent of mpTransparanceItem and mpFloatTransparenceItem 8268dcb2a10SAndre Fischer ImpUpdateTransparencies(); 8278dcb2a10SAndre Fischer } 8288dcb2a10SAndre Fischer 8298dcb2a10SAndre Fischer if (nSID == SID_ATTR_FILL_STYLE ) 8308dcb2a10SAndre Fischer { 8318dcb2a10SAndre Fischer if( eState == SFX_ITEM_DISABLED ) 8328dcb2a10SAndre Fischer { 8338dcb2a10SAndre Fischer mpLbFillType->Disable(); 8348dcb2a10SAndre Fischer mpLbFillType->SetNoSelection(); 8358dcb2a10SAndre Fischer mpLbFillAttr->Show(); 8368dcb2a10SAndre Fischer mpLbFillAttr->Disable(); 8378dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 8388dcb2a10SAndre Fischer mpToolBoxColor->Hide(); 8398dcb2a10SAndre Fischer mbTBShow = false; 8408dcb2a10SAndre Fischer meLastXFS = -1; 8418dcb2a10SAndre Fischer mpStyleItem.reset(); 8428dcb2a10SAndre Fischer } 8438dcb2a10SAndre Fischer else if( SFX_ITEM_AVAILABLE == eState ) 8448dcb2a10SAndre Fischer { 8458dcb2a10SAndre Fischer mpStyleItem.reset(pState ? (XFillStyleItem*)pState->Clone() : 0); 8468dcb2a10SAndre Fischer mpLbFillType->Enable(); 8478dcb2a10SAndre Fischer 8488dcb2a10SAndre Fischer eXFS = (XFillStyle)mpStyleItem->GetValue(); 8498dcb2a10SAndre Fischer meLastXFS = eXFS; 8508dcb2a10SAndre Fischer mpLbFillType->SelectEntryPos( 8518dcb2a10SAndre Fischer sal::static_int_cast< sal_uInt16 >( eXFS ) ); 8528dcb2a10SAndre Fischer //Added for select invisable 8538dcb2a10SAndre Fischer if(eXFS == XFILL_NONE) 8548dcb2a10SAndre Fischer { 8558dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 8568dcb2a10SAndre Fischer mpLbFillAttr->Disable(); 8578dcb2a10SAndre Fischer } 8588dcb2a10SAndre Fischer //else 8598dcb2a10SAndre Fischer // mpLbFillAttr->Enable(); 8608dcb2a10SAndre Fischer Update(); 8618dcb2a10SAndre Fischer //SelectFillTypeHdl( NULL ); 8628dcb2a10SAndre Fischer } 8638dcb2a10SAndre Fischer else 8648dcb2a10SAndre Fischer { 8658dcb2a10SAndre Fischer mpLbFillType->SetNoSelection(); 8668dcb2a10SAndre Fischer mpLbFillAttr->Show(); 8678dcb2a10SAndre Fischer mpLbFillAttr->Disable(); 8688dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 8698dcb2a10SAndre Fischer mpToolBoxColor->Hide(); 8708dcb2a10SAndre Fischer mbTBShow = false; 8718dcb2a10SAndre Fischer meLastXFS = -1; //Added 8728dcb2a10SAndre Fischer mpStyleItem.reset(); 8738dcb2a10SAndre Fischer } 8748dcb2a10SAndre Fischer } 8758dcb2a10SAndre Fischer else if(nSID == SID_ATTR_FILL_COLOR) 8768dcb2a10SAndre Fischer { 8778dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 8788dcb2a10SAndre Fischer { 8798dcb2a10SAndre Fischer mpColorItem.reset(pState ? (XFillColorItem*)pState->Clone() : 0); 8808dcb2a10SAndre Fischer } 8818dcb2a10SAndre Fischer if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_SOLID) 8828dcb2a10SAndre Fischer { 8838dcb2a10SAndre Fischer mpLbFillAttr->Hide(); 8848dcb2a10SAndre Fischer mpToolBoxColor->Show(); 8858dcb2a10SAndre Fischer mbTBShow = true; 8868dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 8878dcb2a10SAndre Fischer { 8888dcb2a10SAndre Fischer mpToolBoxColor->Enable(); 8898dcb2a10SAndre Fischer mbColorAvail = true; // 8908dcb2a10SAndre Fischer // maLastColor = mpColorItem->GetColorValue(); 8918dcb2a10SAndre Fischer Update(); 8928dcb2a10SAndre Fischer } 8938dcb2a10SAndre Fischer else if(SFX_ITEM_DISABLED == eState ) 8948dcb2a10SAndre Fischer { 8958dcb2a10SAndre Fischer mpToolBoxColor->Disable(); 8968dcb2a10SAndre Fischer mbColorAvail = false; // 8978dcb2a10SAndre Fischer mpColorUpdater->Update(COL_WHITE); 8988dcb2a10SAndre Fischer } 8998dcb2a10SAndre Fischer else 9008dcb2a10SAndre Fischer { 9018dcb2a10SAndre Fischer mbColorAvail = false; // 9028dcb2a10SAndre Fischer mpColorUpdater->Update(COL_WHITE); 9038dcb2a10SAndre Fischer } 9048dcb2a10SAndre Fischer } 9058dcb2a10SAndre Fischer } 9068dcb2a10SAndre Fischer else if(nSID == SID_ATTR_FILL_GRADIENT) 9078dcb2a10SAndre Fischer { 9088dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 9098dcb2a10SAndre Fischer { 9108dcb2a10SAndre Fischer mpFillGradientItem.reset(pState ? (XFillGradientItem*)pState->Clone() : 0); 9118dcb2a10SAndre Fischer } 9128dcb2a10SAndre Fischer if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_GRADIENT ) 9138dcb2a10SAndre Fischer { 9148dcb2a10SAndre Fischer mpLbFillAttr->Show(); 9158dcb2a10SAndre Fischer mpToolBoxColor->Hide(); 9168dcb2a10SAndre Fischer mbTBShow = false; 9178dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 9188dcb2a10SAndre Fischer { 9198dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 9208dcb2a10SAndre Fischer Update(); 9218dcb2a10SAndre Fischer } 9228dcb2a10SAndre Fischer 9238dcb2a10SAndre Fischer else if(SFX_ITEM_DISABLED == eState ) 9248dcb2a10SAndre Fischer { 9258dcb2a10SAndre Fischer mpLbFillAttr->Disable(); 9268dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 9278dcb2a10SAndre Fischer } 9288dcb2a10SAndre Fischer else 9298dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 9308dcb2a10SAndre Fischer } 9318dcb2a10SAndre Fischer } 9328dcb2a10SAndre Fischer else if(nSID == SID_ATTR_FILL_HATCH) 9338dcb2a10SAndre Fischer { 9348dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 9358dcb2a10SAndre Fischer { 9368dcb2a10SAndre Fischer mpHatchItem.reset(pState ? (XFillHatchItem*)pState->Clone() : 0); 9378dcb2a10SAndre Fischer } 9388dcb2a10SAndre Fischer if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_HATCH ) 9398dcb2a10SAndre Fischer { 9408dcb2a10SAndre Fischer mpLbFillAttr->Show(); 9418dcb2a10SAndre Fischer mpToolBoxColor->Hide(); 9428dcb2a10SAndre Fischer mbTBShow = false; 9438dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 9448dcb2a10SAndre Fischer { 9458dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 9468dcb2a10SAndre Fischer Update(); 9478dcb2a10SAndre Fischer } 9488dcb2a10SAndre Fischer else if(SFX_ITEM_DISABLED == eState ) 9498dcb2a10SAndre Fischer { 9508dcb2a10SAndre Fischer mpLbFillAttr->Disable(); 9518dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 9528dcb2a10SAndre Fischer } 9538dcb2a10SAndre Fischer else 9548dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 9558dcb2a10SAndre Fischer } 9568dcb2a10SAndre Fischer } 9578dcb2a10SAndre Fischer else if(nSID == SID_ATTR_FILL_BITMAP) 9588dcb2a10SAndre Fischer { 9598dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 9608dcb2a10SAndre Fischer { 9618dcb2a10SAndre Fischer mpBitmapItem.reset(pState ? (XFillBitmapItem*)pState->Clone() : 0); 9628dcb2a10SAndre Fischer } 9638dcb2a10SAndre Fischer if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_BITMAP ) 9648dcb2a10SAndre Fischer { 9658dcb2a10SAndre Fischer mpLbFillAttr->Show(); 9668dcb2a10SAndre Fischer mpToolBoxColor->Hide(); 9678dcb2a10SAndre Fischer mbTBShow = false; 9688dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 9698dcb2a10SAndre Fischer { 9708dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 9718dcb2a10SAndre Fischer Update(); 9728dcb2a10SAndre Fischer } 9738dcb2a10SAndre Fischer else if(SFX_ITEM_DISABLED == eState ) 9748dcb2a10SAndre Fischer { 9758dcb2a10SAndre Fischer mpLbFillAttr->Disable(); 9768dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 9778dcb2a10SAndre Fischer } 9788dcb2a10SAndre Fischer else 9798dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 9808dcb2a10SAndre Fischer } 9818dcb2a10SAndre Fischer } 9828dcb2a10SAndre Fischer else if(nSID == SID_COLOR_TABLE) 9838dcb2a10SAndre Fischer { 9848dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 9858dcb2a10SAndre Fischer { 9868dcb2a10SAndre Fischer mpColorTableItem.reset(pState ? (SvxColorTableItem*)pState->Clone() : 0); 9878dcb2a10SAndre Fischer 9888dcb2a10SAndre Fischer if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue()== XFILL_SOLID) 9898dcb2a10SAndre Fischer { 9908dcb2a10SAndre Fischer if ( mpColorItem ) 9918dcb2a10SAndre Fischer { 9928dcb2a10SAndre Fischer String aString( mpColorItem->GetName() ); 9938dcb2a10SAndre Fischer Color aColor = mpColorItem->GetColorValue(); 9948dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 9958dcb2a10SAndre Fischer SvxColorTableItem aItem( *(const SvxColorTableItem*)( 9968dcb2a10SAndre Fischer pSh->GetItem( SID_COLOR_TABLE ) ) ); 9978dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 9988dcb2a10SAndre Fischer mpLbFillAttr->Fill( aItem.GetColorTable() ); 9998dcb2a10SAndre Fischer mpLbFillAttr->SelectEntry( aColor ); 10008dcb2a10SAndre Fischer } 10018dcb2a10SAndre Fischer else 10028dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 10038dcb2a10SAndre Fischer } 10048dcb2a10SAndre Fischer } 10058dcb2a10SAndre Fischer } 10068dcb2a10SAndre Fischer else if(nSID == SID_GRADIENT_LIST) 10078dcb2a10SAndre Fischer { 10088dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 10098dcb2a10SAndre Fischer { 10108dcb2a10SAndre Fischer mpGradientListItem.reset(pState ? (SvxGradientListItem*)pState->Clone() : 0); 10118dcb2a10SAndre Fischer 10128dcb2a10SAndre Fischer if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_GRADIENT) 10138dcb2a10SAndre Fischer { 10148dcb2a10SAndre Fischer if ( mpFillGradientItem ) 10158dcb2a10SAndre Fischer { 10168dcb2a10SAndre Fischer String aString( mpFillGradientItem->GetName() ); 10178dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 10188dcb2a10SAndre Fischer SvxGradientListItem aItem( *(const SvxGradientListItem*)( 10198dcb2a10SAndre Fischer pSh->GetItem( SID_GRADIENT_LIST ) ) ); 10208dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 10218dcb2a10SAndre Fischer mpLbFillAttr->Fill( aItem.GetGradientList() ); 10228dcb2a10SAndre Fischer mpLbFillAttr->SelectEntry( aString ); 10238dcb2a10SAndre Fischer } 10248dcb2a10SAndre Fischer else 10258dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 10268dcb2a10SAndre Fischer } 10278dcb2a10SAndre Fischer } 10288dcb2a10SAndre Fischer } 10298dcb2a10SAndre Fischer else if(nSID == SID_HATCH_LIST) 10308dcb2a10SAndre Fischer { 10318dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 10328dcb2a10SAndre Fischer { 10338dcb2a10SAndre Fischer mpHatchListItem.reset(pState ? (SvxHatchListItem*)pState->Clone() : 0); 10348dcb2a10SAndre Fischer 10358dcb2a10SAndre Fischer if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_HATCH ) 10368dcb2a10SAndre Fischer { 10378dcb2a10SAndre Fischer if ( mpHatchItem) 10388dcb2a10SAndre Fischer { 10398dcb2a10SAndre Fischer String aString( mpHatchItem->GetName() ); 10408dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 10418dcb2a10SAndre Fischer SvxHatchListItem aItem( *(const SvxHatchListItem*)( 10428dcb2a10SAndre Fischer pSh->GetItem( SID_HATCH_LIST ) ) ); 10438dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 10448dcb2a10SAndre Fischer mpLbFillAttr->Fill( aItem.GetHatchList() ); 10458dcb2a10SAndre Fischer mpLbFillAttr->SelectEntry( aString ); 10468dcb2a10SAndre Fischer } 10478dcb2a10SAndre Fischer else 10488dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 10498dcb2a10SAndre Fischer } 10508dcb2a10SAndre Fischer } 10518dcb2a10SAndre Fischer } 10528dcb2a10SAndre Fischer else if(nSID == SID_BITMAP_LIST) 10538dcb2a10SAndre Fischer { 10548dcb2a10SAndre Fischer if( SFX_ITEM_AVAILABLE == eState) 10558dcb2a10SAndre Fischer { 10568dcb2a10SAndre Fischer mpBitmapListItem.reset(pState ? (SvxBitmapListItem*)pState->Clone() : 0); 10578dcb2a10SAndre Fischer 10588dcb2a10SAndre Fischer if( mpStyleItem && (XFillStyle)mpStyleItem->GetValue() == XFILL_BITMAP ) 10598dcb2a10SAndre Fischer { 10608dcb2a10SAndre Fischer if ( mpBitmapItem ) 10618dcb2a10SAndre Fischer { 10628dcb2a10SAndre Fischer String aString( mpBitmapItem->GetName() ); 10638dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 10648dcb2a10SAndre Fischer SvxBitmapListItem aItem( *(const SvxBitmapListItem*)( 10658dcb2a10SAndre Fischer pSh->GetItem( SID_BITMAP_LIST ) ) ); 10668dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 10678dcb2a10SAndre Fischer mpLbFillAttr->Fill( aItem.GetBitmapList() ); 10688dcb2a10SAndre Fischer mpLbFillAttr->SelectEntry( aString ); 10698dcb2a10SAndre Fischer } 10708dcb2a10SAndre Fischer else 10718dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 10728dcb2a10SAndre Fischer } 10738dcb2a10SAndre Fischer } 10748dcb2a10SAndre Fischer } 10758dcb2a10SAndre Fischer } 10768dcb2a10SAndre Fischer 10778dcb2a10SAndre Fischer 10788dcb2a10SAndre Fischer 10798dcb2a10SAndre Fischer SfxBindings* AreaPropertyPanel::GetBindings() 10808dcb2a10SAndre Fischer { 10818dcb2a10SAndre Fischer return mpBindings; 10828dcb2a10SAndre Fischer } 10838dcb2a10SAndre Fischer 10848dcb2a10SAndre Fischer 10858dcb2a10SAndre Fischer 10868dcb2a10SAndre Fischer void AreaPropertyPanel::Update() 10878dcb2a10SAndre Fischer { 10888dcb2a10SAndre Fischer if ( mpStyleItem ) 10898dcb2a10SAndre Fischer { 10908dcb2a10SAndre Fischer XFillStyle eXFS = (XFillStyle)mpStyleItem->GetValue(); 10918dcb2a10SAndre Fischer SfxObjectShell* pSh = SfxObjectShell::Current(); 10928dcb2a10SAndre Fischer 10938dcb2a10SAndre Fischer switch( eXFS ) 10948dcb2a10SAndre Fischer { 10958dcb2a10SAndre Fischer case XFILL_NONE: 10968dcb2a10SAndre Fischer { 10978dcb2a10SAndre Fischer mpLbFillAttr->Show(); //wj for new color picker 10988dcb2a10SAndre Fischer mpToolBoxColor->Hide(); //wj for new color picker 10998dcb2a10SAndre Fischer mbTBShow = false; 11008dcb2a10SAndre Fischer } 11018dcb2a10SAndre Fischer break; 11028dcb2a10SAndre Fischer 11038dcb2a10SAndre Fischer case XFILL_SOLID: 11048dcb2a10SAndre Fischer { 11058dcb2a10SAndre Fischer if ( mpColorItem ) 11068dcb2a10SAndre Fischer { 11078dcb2a10SAndre Fischer mpLbFillAttr->Hide(); //wj for new color picker 11088dcb2a10SAndre Fischer mpToolBoxColor->Show(); //wj for new color picker 11098dcb2a10SAndre Fischer mbTBShow = true; 11108dcb2a10SAndre Fischer mpColorUpdater->Update(mpColorItem->GetColorValue()); 11118dcb2a10SAndre Fischer } 11128dcb2a10SAndre Fischer else 11138dcb2a10SAndre Fischer mpColorUpdater->Update(COL_WHITE); 11148dcb2a10SAndre Fischer } 11158dcb2a10SAndre Fischer break; 11168dcb2a10SAndre Fischer 11178dcb2a10SAndre Fischer case XFILL_GRADIENT: 11188dcb2a10SAndre Fischer { 11198dcb2a10SAndre Fischer mpLbFillAttr->Show(); //wj for new color picker 11208dcb2a10SAndre Fischer mpToolBoxColor->Hide(); //wj for new color picker 11218dcb2a10SAndre Fischer mbTBShow = false; 11228dcb2a10SAndre Fischer if ( pSh && pSh->GetItem( SID_GRADIENT_LIST ) ) 11238dcb2a10SAndre Fischer { 11248dcb2a10SAndre Fischer SvxGradientListItem aItem( *(const SvxGradientListItem*)( 11258dcb2a10SAndre Fischer pSh->GetItem( SID_GRADIENT_LIST ) ) ); 11268dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 11278dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 11288dcb2a10SAndre Fischer mpLbFillAttr->Fill( aItem.GetGradientList() ); 11298dcb2a10SAndre Fischer if ( mpFillGradientItem ) 11308dcb2a10SAndre Fischer { 11318dcb2a10SAndre Fischer String aString( mpFillGradientItem->GetName() ); 11328dcb2a10SAndre Fischer mpLbFillAttr->SelectEntry( aString ); 11338dcb2a10SAndre Fischer } 11348dcb2a10SAndre Fischer else 11358dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 11368dcb2a10SAndre Fischer } 11378dcb2a10SAndre Fischer else 11388dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 11398dcb2a10SAndre Fischer } 11408dcb2a10SAndre Fischer break; 11418dcb2a10SAndre Fischer 11428dcb2a10SAndre Fischer case XFILL_HATCH: 11438dcb2a10SAndre Fischer { 11448dcb2a10SAndre Fischer mpLbFillAttr->Show(); //wj for new color picker 11458dcb2a10SAndre Fischer mpToolBoxColor->Hide(); //wj for new color picker 11468dcb2a10SAndre Fischer mbTBShow = false; 11478dcb2a10SAndre Fischer if ( pSh && pSh->GetItem( SID_HATCH_LIST ) ) 11488dcb2a10SAndre Fischer { 11498dcb2a10SAndre Fischer SvxHatchListItem aItem( *(const SvxHatchListItem*)( 11508dcb2a10SAndre Fischer pSh->GetItem( SID_HATCH_LIST ) ) ); 11518dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 11528dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 11538dcb2a10SAndre Fischer mpLbFillAttr->Fill( aItem.GetHatchList() ); 11548dcb2a10SAndre Fischer if ( mpHatchItem ) 11558dcb2a10SAndre Fischer { 11568dcb2a10SAndre Fischer String aString( mpHatchItem->GetName() ); 11578dcb2a10SAndre Fischer mpLbFillAttr->SelectEntry( aString ); 11588dcb2a10SAndre Fischer } 11598dcb2a10SAndre Fischer else 11608dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 11618dcb2a10SAndre Fischer } 11628dcb2a10SAndre Fischer else 11638dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 11648dcb2a10SAndre Fischer } 11658dcb2a10SAndre Fischer break; 11668dcb2a10SAndre Fischer 11678dcb2a10SAndre Fischer case XFILL_BITMAP: 11688dcb2a10SAndre Fischer { 11698dcb2a10SAndre Fischer mpLbFillAttr->Show(); //wj for new color picker 11708dcb2a10SAndre Fischer mpToolBoxColor->Hide(); //wj for new color picker 11718dcb2a10SAndre Fischer mbTBShow = false; 11728dcb2a10SAndre Fischer //mpLbFillAttr->Fill( mpBitmapListItem->GetBitmapList() ); 11738dcb2a10SAndre Fischer if ( pSh && pSh->GetItem( SID_BITMAP_LIST ) ) 11748dcb2a10SAndre Fischer { 11758dcb2a10SAndre Fischer SvxBitmapListItem aItem( *(const SvxBitmapListItem*)( 11768dcb2a10SAndre Fischer pSh->GetItem( SID_BITMAP_LIST ) ) ); 11778dcb2a10SAndre Fischer mpLbFillAttr->Enable(); 11788dcb2a10SAndre Fischer mpLbFillAttr->Clear(); 11798dcb2a10SAndre Fischer mpLbFillAttr->Fill( aItem.GetBitmapList() ); 11808dcb2a10SAndre Fischer if ( mpBitmapItem ) 11818dcb2a10SAndre Fischer { 11828dcb2a10SAndre Fischer String aString( mpBitmapItem->GetName() ); 11838dcb2a10SAndre Fischer mpLbFillAttr->SelectEntry( aString ); 11848dcb2a10SAndre Fischer } 11858dcb2a10SAndre Fischer else 11868dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 11878dcb2a10SAndre Fischer } 11888dcb2a10SAndre Fischer else 11898dcb2a10SAndre Fischer mpLbFillAttr->SetNoSelection(); 11908dcb2a10SAndre Fischer } 11918dcb2a10SAndre Fischer break; 11928dcb2a10SAndre Fischer 11938dcb2a10SAndre Fischer default: 11948dcb2a10SAndre Fischer DBG_ERROR( "Nicht unterstuetzter Flaechentyp" ); 11958dcb2a10SAndre Fischer break; 11968dcb2a10SAndre Fischer } 11978dcb2a10SAndre Fischer } 11988dcb2a10SAndre Fischer } 11998dcb2a10SAndre Fischer 12008dcb2a10SAndre Fischer 12018dcb2a10SAndre Fischer 12028dcb2a10SAndre Fischer IMPL_LINK( AreaPropertyPanel, ImplPopupModeEndHdl, FloatingWindow*, EMPTYARG ) 12038dcb2a10SAndre Fischer { 12048dcb2a10SAndre Fischer return 0; 12058dcb2a10SAndre Fischer } 12068dcb2a10SAndre Fischer 12078dcb2a10SAndre Fischer 12088dcb2a10SAndre Fischer 12098dcb2a10SAndre Fischer IMPL_LINK( AreaPropertyPanel, ClickTrGrHdl_Impl, ToolBox*, pToolBox ) 12108dcb2a10SAndre Fischer { 12118dcb2a10SAndre Fischer maTrGrPopup.Rearrange(mpFloatTransparenceItem.get()); 12128dcb2a10SAndre Fischer 12138dcb2a10SAndre Fischer OSL_ASSERT(pToolBox->GetCurItemId() == TBI_BTX_GRADIENT); 12148dcb2a10SAndre Fischer 12158dcb2a10SAndre Fischer maTrGrPopup.Show(*pToolBox); 12168dcb2a10SAndre Fischer 12178dcb2a10SAndre Fischer return (0L); 12188dcb2a10SAndre Fischer } 12198dcb2a10SAndre Fischer 12208dcb2a10SAndre Fischer 12218dcb2a10SAndre Fischer 12228dcb2a10SAndre Fischer IMPL_LINK(AreaPropertyPanel, ChangeTrgrTypeHdl_Impl, void *, EMPTYARG) 12238dcb2a10SAndre Fischer { 12248dcb2a10SAndre Fischer sal_uInt16 nSelectType = mpLBTransType->GetSelectEntryPos(); 12258dcb2a10SAndre Fischer bool bGradient = false; 12268dcb2a10SAndre Fischer sal_uInt16 nTrans = 0; 12278dcb2a10SAndre Fischer 12288dcb2a10SAndre Fischer if (nSelectType == 0) 12298dcb2a10SAndre Fischer { 12308dcb2a10SAndre Fischer mpBTNGradient->Hide(); 12318dcb2a10SAndre Fischer mpMTRTransparent->Show(); 12328dcb2a10SAndre Fischer mpMTRTransparent->Enable(); 12338dcb2a10SAndre Fischer mpMTRTransparent->SetValue(0); 12348dcb2a10SAndre Fischer } 12358dcb2a10SAndre Fischer else if (nSelectType == 1) 12368dcb2a10SAndre Fischer { 12378dcb2a10SAndre Fischer mpBTNGradient->Hide(); 12388dcb2a10SAndre Fischer mpMTRTransparent->Show(); 12398dcb2a10SAndre Fischer nTrans = mnLastTransSolid; 12408dcb2a10SAndre Fischer mpMTRTransparent->SetValue(nTrans); 12418dcb2a10SAndre Fischer mpLBTransType->SelectEntryPos(1);// for multi-selected, choose solid no selection 12428dcb2a10SAndre Fischer mpMTRTransparent->Enable(); 12438dcb2a10SAndre Fischer } 12448dcb2a10SAndre Fischer else 12458dcb2a10SAndre Fischer { 12468dcb2a10SAndre Fischer mpBTNGradient->Show(); 12478dcb2a10SAndre Fischer //for beta1 12488dcb2a10SAndre Fischer switch ( nSelectType ) 12498dcb2a10SAndre Fischer { 12508dcb2a10SAndre Fischer case 2: 12518dcb2a10SAndre Fischer mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgLinearH : maImgLinear); // high contrast 12528dcb2a10SAndre Fischer break; 12538dcb2a10SAndre Fischer case 3: 12548dcb2a10SAndre Fischer mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgAxialH : maImgAxial); 12558dcb2a10SAndre Fischer break; 12568dcb2a10SAndre Fischer case 4: 12578dcb2a10SAndre Fischer mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgRadialH : maImgRadial); 12588dcb2a10SAndre Fischer break; 12598dcb2a10SAndre Fischer case 5: 12608dcb2a10SAndre Fischer mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgElliH : maImgElli ); 12618dcb2a10SAndre Fischer break; 12628dcb2a10SAndre Fischer case 6: 12638dcb2a10SAndre Fischer mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgQuadH : maImgQuad ); 12648dcb2a10SAndre Fischer break; 12658dcb2a10SAndre Fischer case 7: 12668dcb2a10SAndre Fischer mpBTNGradient->SetItemImage(TBI_BTX_GRADIENT,GetSettings().GetStyleSettings().GetHighContrastMode()? maImgSquareH : maImgSquare); 12678dcb2a10SAndre Fischer break; 12688dcb2a10SAndre Fischer } 12698dcb2a10SAndre Fischer //end of new code 12708dcb2a10SAndre Fischer mpMTRTransparent->Hide(); 12718dcb2a10SAndre Fischer mpBTNGradient->Enable(); 12728dcb2a10SAndre Fischer bGradient = true; 12738dcb2a10SAndre Fischer } 12748dcb2a10SAndre Fischer 12758dcb2a10SAndre Fischer XFillTransparenceItem aLinearItem(nTrans); 12768dcb2a10SAndre Fischer GetBindings()->GetDispatcher()->Execute( SID_ATTR_FILL_TRANSPARENCE, SFX_CALLMODE_RECORD, &aLinearItem, 0L ); 12778dcb2a10SAndre Fischer 12788dcb2a10SAndre Fischer if (nSelectType > 1) nSelectType = nSelectType-2; 12798dcb2a10SAndre Fischer 12808dcb2a10SAndre Fischer XGradient aTmpGradient; 12818dcb2a10SAndre Fischer 12828dcb2a10SAndre Fischer switch(nSelectType) 12838dcb2a10SAndre Fischer { 12848dcb2a10SAndre Fischer case XGRAD_LINEAR: 12858dcb2a10SAndre Fischer aTmpGradient = maGradientLinear; 12868dcb2a10SAndre Fischer break; 12878dcb2a10SAndre Fischer case XGRAD_AXIAL: 12888dcb2a10SAndre Fischer aTmpGradient = maGradientAxial; 12898dcb2a10SAndre Fischer break; 12908dcb2a10SAndre Fischer case XGRAD_RADIAL: 12918dcb2a10SAndre Fischer aTmpGradient = maGradientRadial; 12928dcb2a10SAndre Fischer break; 12938dcb2a10SAndre Fischer case XGRAD_ELLIPTICAL: 12948dcb2a10SAndre Fischer aTmpGradient = maGradientElliptical; 12958dcb2a10SAndre Fischer break; 12968dcb2a10SAndre Fischer case XGRAD_SQUARE: 12978dcb2a10SAndre Fischer aTmpGradient = maGradientSquare; 12988dcb2a10SAndre Fischer break; 12998dcb2a10SAndre Fischer case XGRAD_RECT: 13008dcb2a10SAndre Fischer aTmpGradient = maGradientRect; 13018dcb2a10SAndre Fischer break; 13028dcb2a10SAndre Fischer } 13038dcb2a10SAndre Fischer SfxItemPool* pPool = NULL; 13048dcb2a10SAndre Fischer bool bEnable = false; 13058dcb2a10SAndre Fischer if (bGradient) bEnable = true; 13068dcb2a10SAndre Fischer XFillFloatTransparenceItem aGradientItem(pPool,aTmpGradient, bEnable ); 13078dcb2a10SAndre Fischer 13088dcb2a10SAndre Fischer GetBindings()->GetDispatcher()->Execute( SID_ATTR_FILL_FLOATTRANSPARENCE, SFX_CALLMODE_RECORD, &aGradientItem, 0L ); 13098dcb2a10SAndre Fischer 13108dcb2a10SAndre Fischer return( 0L ); 13118dcb2a10SAndre Fischer } 13128dcb2a10SAndre Fischer 13138dcb2a10SAndre Fischer 13148dcb2a10SAndre Fischer 13158dcb2a10SAndre Fischer IMPL_LINK(AreaPropertyPanel, ModifyTransparentHdl_Impl, void*, EMPTYARG) 13168dcb2a10SAndre Fischer { 13178dcb2a10SAndre Fischer sal_uInt16 nTrans = (sal_uInt16)mpMTRTransparent->GetValue(); 13188dcb2a10SAndre Fischer mnLastTransSolid = nTrans; 13198dcb2a10SAndre Fischer sal_uInt16 nSelectType = mpLBTransType->GetSelectEntryPos(); 13208dcb2a10SAndre Fischer if (nTrans != 0 && nSelectType == 0) 13218dcb2a10SAndre Fischer mpLBTransType->SelectEntryPos(1); 13228dcb2a10SAndre Fischer XFillTransparenceItem aLinearItem(nTrans); 13238dcb2a10SAndre Fischer GetBindings()->GetDispatcher()->Execute( SID_ATTR_FILL_TRANSPARENCE, SFX_CALLMODE_RECORD, &aLinearItem, 0L ); 13248dcb2a10SAndre Fischer 13258dcb2a10SAndre Fischer return 0L; 13268dcb2a10SAndre Fischer } 13278dcb2a10SAndre Fischer 13288dcb2a10SAndre Fischer 13298dcb2a10SAndre Fischer Color AreaPropertyPanel::GetLastColor (void) const 13308dcb2a10SAndre Fischer { 13318dcb2a10SAndre Fischer return maLastColor; 13328dcb2a10SAndre Fischer } 13338dcb2a10SAndre Fischer 13348dcb2a10SAndre Fischer 13358dcb2a10SAndre Fischer 13368dcb2a10SAndre Fischer 13378dcb2a10SAndre Fischer XGradient AreaPropertyPanel::GetGradient (const XGradientStyle eStyle) const 13388dcb2a10SAndre Fischer { 13398dcb2a10SAndre Fischer switch (eStyle) 13408dcb2a10SAndre Fischer { 13418dcb2a10SAndre Fischer default: 13428dcb2a10SAndre Fischer case XGRAD_LINEAR: 13438dcb2a10SAndre Fischer return maGradientLinear; 13448dcb2a10SAndre Fischer case XGRAD_AXIAL: 13458dcb2a10SAndre Fischer return maGradientAxial; 13468dcb2a10SAndre Fischer case XGRAD_RADIAL: 13478dcb2a10SAndre Fischer return maGradientRadial; 13488dcb2a10SAndre Fischer case XGRAD_ELLIPTICAL: 13498dcb2a10SAndre Fischer return maGradientElliptical; 13508dcb2a10SAndre Fischer case XGRAD_SQUARE: 13518dcb2a10SAndre Fischer return maGradientSquare; 13528dcb2a10SAndre Fischer case XGRAD_RECT: 13538dcb2a10SAndre Fischer return maGradientRect; 13548dcb2a10SAndre Fischer } 13558dcb2a10SAndre Fischer } 13568dcb2a10SAndre Fischer 13578dcb2a10SAndre Fischer 13588dcb2a10SAndre Fischer 13598dcb2a10SAndre Fischer 13608dcb2a10SAndre Fischer void AreaPropertyPanel::SetGradient (const XGradient& rGradient) 13618dcb2a10SAndre Fischer { 13628dcb2a10SAndre Fischer switch (rGradient.GetGradientStyle()) 13638dcb2a10SAndre Fischer { 13648dcb2a10SAndre Fischer case XGRAD_LINEAR: 13658dcb2a10SAndre Fischer maGradientLinear = rGradient; 13668dcb2a10SAndre Fischer break; 13678dcb2a10SAndre Fischer case XGRAD_AXIAL: 13688dcb2a10SAndre Fischer maGradientAxial = rGradient; 13698dcb2a10SAndre Fischer break; 13708dcb2a10SAndre Fischer case XGRAD_RADIAL: 13718dcb2a10SAndre Fischer maGradientRadial = rGradient; 13728dcb2a10SAndre Fischer break; 13738dcb2a10SAndre Fischer case XGRAD_ELLIPTICAL: 13748dcb2a10SAndre Fischer maGradientElliptical = rGradient; 13758dcb2a10SAndre Fischer break; 13768dcb2a10SAndre Fischer case XGRAD_SQUARE: 13778dcb2a10SAndre Fischer maGradientSquare = rGradient; 13788dcb2a10SAndre Fischer break; 13798dcb2a10SAndre Fischer case XGRAD_RECT: 13808dcb2a10SAndre Fischer maGradientRect = rGradient; 13818dcb2a10SAndre Fischer break; 13828dcb2a10SAndre Fischer } 13838dcb2a10SAndre Fischer } 13848dcb2a10SAndre Fischer 13858dcb2a10SAndre Fischer 13868dcb2a10SAndre Fischer 13878dcb2a10SAndre Fischer 13888dcb2a10SAndre Fischer sal_Int32 AreaPropertyPanel::GetSelectedTransparencyTypeIndex (void) const 13898dcb2a10SAndre Fischer { 13908dcb2a10SAndre Fischer return mpLBTransType->GetSelectEntryPos(); 13918dcb2a10SAndre Fischer } 13928dcb2a10SAndre Fischer 13938dcb2a10SAndre Fischer } } // end of namespace svx::sidebar 1394