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 "AreaTransparencyGradientControl.hxx" 238dcb2a10SAndre Fischer #include "AreaPropertyPanel.hxx" 248dcb2a10SAndre Fischer #include "AreaPropertyPanel.hrc" 258dcb2a10SAndre Fischer 268dcb2a10SAndre Fischer #include <svx/dialogs.hrc> 278dcb2a10SAndre Fischer #include <svx/dialmgr.hxx> 288dcb2a10SAndre Fischer #include <svx/xflftrit.hxx> 29*d29c2fc2SAndre Fischer #include <sfx2/sidebar/ResourceDefinitions.hrc> 308dcb2a10SAndre Fischer #include <sfx2/bindings.hxx> 318dcb2a10SAndre Fischer #include <sfx2/dispatch.hxx> 328dcb2a10SAndre Fischer 338dcb2a10SAndre Fischer namespace svx { namespace sidebar { 348dcb2a10SAndre Fischer 358dcb2a10SAndre Fischer // positioning helpers 368dcb2a10SAndre Fischer #define APOS1_1 Point(LogicToPixel(Point(POPUPPANEL_MARGIN_HORIZONTAL,POPUPPANEL_MARGIN_VERTICAL), MAP_APPFONT)) 378dcb2a10SAndre Fischer #define APOS2_1 Point(LogicToPixel(Point(POPUPPANEL_MARGIN_HORIZONTAL,POPUPPANEL_MARGIN_VERTICAL + FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL), MAP_APPFONT)) 388dcb2a10SAndre Fischer #define APOS1_2 Point(LogicToPixel(Point(POPUPPANEL_MARGIN_HORIZONTAL+CONTROL_WIDTH+CONTROL_SPACING_HORIZONTAL,POPUPPANEL_MARGIN_VERTICAL), MAP_APPFONT)) 398dcb2a10SAndre Fischer #define APOS2_2 Point(LogicToPixel(Point(POPUPPANEL_MARGIN_HORIZONTAL+CONTROL_WIDTH+CONTROL_SPACING_HORIZONTAL,POPUPPANEL_MARGIN_VERTICAL + FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL), MAP_APPFONT)) 408dcb2a10SAndre Fischer #define APOS1_3 Point(LogicToPixel(Point(POPUPPANEL_MARGIN_HORIZONTAL,POPUPPANEL_MARGIN_VERTICAL + FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL+MBOX_HEIGHT+CONTROL_SPACING_VERTICAL), MAP_APPFONT)) 418dcb2a10SAndre Fischer #define APOS1_4 Point(LogicToPixel(Point(POPUPPANEL_MARGIN_HORIZONTAL,POPUPPANEL_MARGIN_VERTICAL + 2*(FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL)+MBOX_HEIGHT+CONTROL_SPACING_VERTICAL), MAP_APPFONT)) 428dcb2a10SAndre Fischer #define APOS2_3 Point(LogicToPixel(Point(POPUPPANEL_MARGIN_HORIZONTAL+CONTROL_WIDTH+CONTROL_SPACING_HORIZONTAL,POPUPPANEL_MARGIN_VERTICAL + FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL+MBOX_HEIGHT+CONTROL_SPACING_VERTICAL), MAP_APPFONT)) 438dcb2a10SAndre Fischer #define APOS2_4 Point(LogicToPixel(Point(POPUPPANEL_MARGIN_HORIZONTAL+CONTROL_WIDTH+CONTROL_SPACING_HORIZONTAL,POPUPPANEL_MARGIN_VERTICAL + 2*(FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL)+MBOX_HEIGHT+CONTROL_SPACING_VERTICAL), MAP_APPFONT)) 448dcb2a10SAndre Fischer #define APOS1_5 Point(LogicToPixel(Point(POPUPPANEL_MARGIN_HORIZONTAL,POPUPPANEL_MARGIN_VERTICAL + 2*(FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL+MBOX_HEIGHT+CONTROL_SPACING_VERTICAL)), MAP_APPFONT)) 458dcb2a10SAndre Fischer #define APOS1_6 Point(LogicToPixel(Point(POPUPPANEL_MARGIN_HORIZONTAL,POPUPPANEL_MARGIN_VERTICAL + 3*(FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL)+2*(MBOX_HEIGHT+CONTROL_SPACING_VERTICAL)), MAP_APPFONT)) 468dcb2a10SAndre Fischer #define APOS2_5 Point(LogicToPixel(Point(POPUPPANEL_MARGIN_HORIZONTAL+CONTROL_WIDTH+CONTROL_SPACING_HORIZONTAL,POPUPPANEL_MARGIN_VERTICAL + 2*(FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL+MBOX_HEIGHT+CONTROL_SPACING_VERTICAL)), MAP_APPFONT)) 478dcb2a10SAndre Fischer #define APOS2_6 Point(LogicToPixel(Point(POPUPPANEL_MARGIN_HORIZONTAL+CONTROL_WIDTH+CONTROL_SPACING_HORIZONTAL,POPUPPANEL_MARGIN_VERTICAL + 3*(FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL)+2*(MBOX_HEIGHT+CONTROL_SPACING_VERTICAL)), MAP_APPFONT)) 488dcb2a10SAndre Fischer #define APOS1_7 Point(LogicToPixel(Point(POPUPPANEL_MARGIN_HORIZONTAL,POPUPPANEL_MARGIN_VERTICAL + 3*(FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL+MBOX_HEIGHT+CONTROL_SPACING_VERTICAL)), MAP_APPFONT)) 498dcb2a10SAndre Fischer #define APOS1_8 Point(LogicToPixel(Point(POPUPPANEL_MARGIN_HORIZONTAL,POPUPPANEL_MARGIN_VERTICAL + 4*(FIXED_TEXT_HEIGHT + TEXT_CONTROL_SPACING_VERTICAL)+3*(MBOX_HEIGHT+CONTROL_SPACING_VERTICAL)), MAP_APPFONT)) 508dcb2a10SAndre Fischer #define APOS_Left_Right_1 Point(LogicToPixel(Point(LEFT_RIGHT_X1,LEFT_RIGHT_Y1), MAP_APPFONT)) 518dcb2a10SAndre Fischer #define APOS_Left_Right_2 Point(LogicToPixel(Point(LEFT_RIGHT_X2,LEFT_RIGHT_Y1), MAP_APPFONT)) 528dcb2a10SAndre Fischer #define APOS_Left_Right_3 Point(LogicToPixel(Point(LEFT_RIGHT_X1,LEFT_RIGHT_Y2), MAP_APPFONT)) 538dcb2a10SAndre Fischer #define APOS_Left_Right_4 Point(LogicToPixel(Point(LEFT_RIGHT_X2,LEFT_RIGHT_Y2), MAP_APPFONT)) 548dcb2a10SAndre Fischer 558dcb2a10SAndre Fischer 568dcb2a10SAndre Fischer 578dcb2a10SAndre Fischer 588dcb2a10SAndre Fischer AreaTransparencyGradientControl::AreaTransparencyGradientControl ( 598dcb2a10SAndre Fischer Window* pParent, 608dcb2a10SAndre Fischer AreaPropertyPanel& rPanel) 618dcb2a10SAndre Fischer : PopupControl( pParent,SVX_RES(RID_POPUPPANEL_AREAPAGE_TRGR)), 628dcb2a10SAndre Fischer maFtTrgrCenterX(this, SVX_RES(FT_TRGR_CENTER_X)), 638dcb2a10SAndre Fischer maMtrTrgrCenterX(this, SVX_RES(MTR_TRGR_CENTER_X)), 648dcb2a10SAndre Fischer maFtTrgrCenterY(this, SVX_RES(FT_TRGR_CENTER_Y)), 658dcb2a10SAndre Fischer maMtrTrgrCenterY(this, SVX_RES(MTR_TRGR_CENTER_Y)), 668dcb2a10SAndre Fischer maFtTrgrAngle(this, SVX_RES(FT_TRGR_ANGLE)), 678dcb2a10SAndre Fischer maMtrTrgrAngle(this, SVX_RES(MTR_TRGR_ANGLE)), 68ae981a91SPavel Janík maBtnLeft45(this, SVX_RES(BTN_LEFT_SECOND)), 69ae981a91SPavel Janík maBtnRight45(this, SVX_RES(BTN_RIGHT_FIRST)), 708dcb2a10SAndre Fischer maFtTrgrStartValue(this, SVX_RES(FT_TRGR_START_VALUE)), 718dcb2a10SAndre Fischer maMtrTrgrStartValue(this, SVX_RES(MTR_TRGR_START_VALUE)), 728dcb2a10SAndre Fischer maFtTrgrEndValue(this, SVX_RES(FT_TRGR_END_VALUE)), 738dcb2a10SAndre Fischer maMtrTrgrEndValue(this, SVX_RES(MTR_TRGR_END_VALUE)), 748dcb2a10SAndre Fischer maFtTrgrBorder(this, SVX_RES(FT_TRGR_BORDER)), 758dcb2a10SAndre Fischer maMtrTrgrBorder(this, SVX_RES(MTR_TRGR_BORDER)), 768dcb2a10SAndre Fischer maRotLeft( SVX_RES(IMG_ROT_LEFT)), 778dcb2a10SAndre Fischer maRotRight( SVX_RES(IMG_ROT_RIGHT)), 788dcb2a10SAndre Fischer mrAreaPropertyPanel(rPanel), 798dcb2a10SAndre Fischer mpBindings(NULL) 808dcb2a10SAndre Fischer { 818dcb2a10SAndre Fischer Link aLink = LINK( this, AreaTransparencyGradientControl, ModifiedTrgrHdl_Impl); 828dcb2a10SAndre Fischer maMtrTrgrCenterX.SetModifyHdl( aLink ); 838dcb2a10SAndre Fischer maMtrTrgrCenterY.SetModifyHdl( aLink ); 848dcb2a10SAndre Fischer maMtrTrgrAngle.SetModifyHdl( aLink ); 858dcb2a10SAndre Fischer maMtrTrgrBorder.SetModifyHdl( aLink ); 868dcb2a10SAndre Fischer maMtrTrgrStartValue.SetModifyHdl( aLink ); 878dcb2a10SAndre Fischer maMtrTrgrEndValue.SetModifyHdl( aLink ); 888dcb2a10SAndre Fischer aLink = LINK( this, AreaTransparencyGradientControl, Left_Click45_Impl); 898dcb2a10SAndre Fischer maBtnLeft45.SetSelectHdl( aLink ); 908dcb2a10SAndre Fischer aLink = LINK( this, AreaTransparencyGradientControl, Right_Click45_Impl); 918dcb2a10SAndre Fischer maBtnRight45.SetSelectHdl( aLink ); 928dcb2a10SAndre Fischer maBtnLeft45.SetItemImage(1,maRotLeft); 938dcb2a10SAndre Fischer Size aTbxSize = maBtnLeft45.CalcWindowSizePixel(); 948dcb2a10SAndre Fischer maBtnLeft45.SetOutputSizePixel( aTbxSize ); 958dcb2a10SAndre Fischer maBtnLeft45.SetQuickHelpText(1, String(SVX_RES(STR_HELP_LEFT))); //acc wj 968dcb2a10SAndre Fischer 978dcb2a10SAndre Fischer maBtnRight45.SetItemImage(1,maRotRight); 988dcb2a10SAndre Fischer aTbxSize = maBtnRight45.CalcWindowSizePixel(); 998dcb2a10SAndre Fischer maBtnRight45.SetOutputSizePixel( aTbxSize ); 1008dcb2a10SAndre Fischer maBtnRight45.SetQuickHelpText(1, String(SVX_RES(STR_HELP_RIGHT))); //acc wj 1018dcb2a10SAndre Fischer 1028dcb2a10SAndre Fischer maBtnLeft45.SetBackground(Wallpaper()); 1038dcb2a10SAndre Fischer maBtnLeft45.SetPaintTransparent(true); 1048dcb2a10SAndre Fischer maBtnRight45.SetBackground(Wallpaper()); 1058dcb2a10SAndre Fischer maBtnRight45.SetPaintTransparent(true); 1068dcb2a10SAndre Fischer 1078dcb2a10SAndre Fischer FreeResource(); 1088dcb2a10SAndre Fischer mpBindings = mrAreaPropertyPanel.GetBindings(); 1098dcb2a10SAndre Fischer } 1108dcb2a10SAndre Fischer 1118dcb2a10SAndre Fischer 1128dcb2a10SAndre Fischer 1138dcb2a10SAndre Fischer 1148dcb2a10SAndre Fischer AreaTransparencyGradientControl::~AreaTransparencyGradientControl (void) 1158dcb2a10SAndre Fischer { 1168dcb2a10SAndre Fischer } 1178dcb2a10SAndre Fischer 1188dcb2a10SAndre Fischer 1198dcb2a10SAndre Fischer 1208dcb2a10SAndre Fischer 1218dcb2a10SAndre Fischer void AreaTransparencyGradientControl::ToGetFocus() 1228dcb2a10SAndre Fischer { 1238dcb2a10SAndre Fischer if(maMtrTrgrCenterX.IsVisible()) 1248dcb2a10SAndre Fischer maMtrTrgrCenterX.GrabFocus(); 1258dcb2a10SAndre Fischer else 1268dcb2a10SAndre Fischer maMtrTrgrAngle.GrabFocus(); 1278dcb2a10SAndre Fischer } 1288dcb2a10SAndre Fischer 1298dcb2a10SAndre Fischer 1308dcb2a10SAndre Fischer 1318dcb2a10SAndre Fischer 1328dcb2a10SAndre Fischer void AreaTransparencyGradientControl::Rearrange(XFillFloatTransparenceItem* pGradientItem) 1338dcb2a10SAndre Fischer { 1348dcb2a10SAndre Fischer InitStatus(pGradientItem); 1358dcb2a10SAndre Fischer const XGradient& rGradient = pGradientItem->GetGradientValue(); 1368dcb2a10SAndre Fischer XGradientStyle eXGS(rGradient.GetGradientStyle()); 1378dcb2a10SAndre Fischer Size aSize(POP_WIDTH,POP_HEIGHT); 1388dcb2a10SAndre Fischer aSize = LogicToPixel( aSize, MapMode(MAP_APPFONT) ); 1398dcb2a10SAndre Fischer Size aSize2(POP_WIDTH,POP_HEIGHT2); 1408dcb2a10SAndre Fischer aSize2 = LogicToPixel( aSize2, MapMode(MAP_APPFONT) ); 1418dcb2a10SAndre Fischer long aPosY = 0; 1428dcb2a10SAndre Fischer Point aPointAngle; 1438dcb2a10SAndre Fischer Size aSizeAngle = maMtrTrgrAngle.GetSizePixel(); 1448dcb2a10SAndre Fischer Size aTbxSize = maBtnLeft45.CalcWindowSizePixel(); 1458dcb2a10SAndre Fischer 1468dcb2a10SAndre Fischer switch(eXGS) 1478dcb2a10SAndre Fischer { 1488dcb2a10SAndre Fischer case XGRAD_LINEAR: 1498dcb2a10SAndre Fischer case XGRAD_AXIAL: 1508dcb2a10SAndre Fischer maFtTrgrCenterX.Hide(); 1518dcb2a10SAndre Fischer maMtrTrgrCenterX.Hide(); 1528dcb2a10SAndre Fischer maFtTrgrCenterY.Hide(); 1538dcb2a10SAndre Fischer maMtrTrgrCenterY.Hide(); 1548dcb2a10SAndre Fischer maFtTrgrAngle.Show(); 1558dcb2a10SAndre Fischer maFtTrgrAngle.SetPosPixel(APOS1_1); 1568dcb2a10SAndre Fischer maMtrTrgrAngle.Show(); 1578dcb2a10SAndre Fischer maMtrTrgrAngle.SetPosPixel(APOS2_1); 1588dcb2a10SAndre Fischer maFtTrgrStartValue.SetPosPixel(APOS1_3); 1598dcb2a10SAndre Fischer maMtrTrgrStartValue.SetPosPixel(APOS1_4); 1608dcb2a10SAndre Fischer maFtTrgrEndValue.SetPosPixel(APOS2_3); 1618dcb2a10SAndre Fischer maMtrTrgrEndValue.SetPosPixel(APOS2_4); 1628dcb2a10SAndre Fischer maFtTrgrBorder.SetPosPixel(APOS1_5); 1638dcb2a10SAndre Fischer maMtrTrgrBorder.SetPosPixel(APOS1_6); 1648dcb2a10SAndre Fischer 1658dcb2a10SAndre Fischer maBtnLeft45.Show(); 1668dcb2a10SAndre Fischer maBtnRight45.Show(); 1678dcb2a10SAndre Fischer 1688dcb2a10SAndre Fischer aPointAngle = maMtrTrgrAngle.GetPosPixel(); 1698dcb2a10SAndre Fischer aPosY = aPointAngle.getY() + aSizeAngle.getHeight() - aTbxSize.getHeight(); 1708dcb2a10SAndre Fischer 1718dcb2a10SAndre Fischer maBtnLeft45.SetPosPixel(Point(APOS_Left_Right_1.getX(), aPosY)); 1728dcb2a10SAndre Fischer maBtnRight45.SetPosPixel(Point(APOS_Left_Right_2.getX(), aPosY)); 1738dcb2a10SAndre Fischer 1748dcb2a10SAndre Fischer SetSizePixel(aSize2); 1758dcb2a10SAndre Fischer break; 1768dcb2a10SAndre Fischer 1778dcb2a10SAndre Fischer case XGRAD_RADIAL: 1788dcb2a10SAndre Fischer maFtTrgrCenterX.Show(); 1798dcb2a10SAndre Fischer maFtTrgrCenterX.SetPosPixel(APOS1_1); 1808dcb2a10SAndre Fischer maMtrTrgrCenterX.Show(); 1818dcb2a10SAndre Fischer maMtrTrgrCenterX.SetPosPixel(APOS2_1); 1828dcb2a10SAndre Fischer maFtTrgrCenterY.Show(); 1838dcb2a10SAndre Fischer maFtTrgrCenterY.SetPosPixel(APOS1_2); 1848dcb2a10SAndre Fischer maMtrTrgrCenterY.Show(); 1858dcb2a10SAndre Fischer maMtrTrgrCenterY.SetPosPixel(APOS2_2); 1868dcb2a10SAndre Fischer maFtTrgrAngle.Hide(); 1878dcb2a10SAndre Fischer maMtrTrgrAngle.Hide(); 1888dcb2a10SAndre Fischer maFtTrgrStartValue.SetPosPixel(APOS1_3); 1898dcb2a10SAndre Fischer maMtrTrgrStartValue.SetPosPixel(APOS1_4); 1908dcb2a10SAndre Fischer maFtTrgrEndValue.SetPosPixel(APOS2_3); 1918dcb2a10SAndre Fischer maMtrTrgrEndValue.SetPosPixel(APOS2_4); 1928dcb2a10SAndre Fischer maFtTrgrBorder.SetPosPixel(APOS1_5); 1938dcb2a10SAndre Fischer maMtrTrgrBorder.SetPosPixel(APOS1_6); 1948dcb2a10SAndre Fischer 1958dcb2a10SAndre Fischer maBtnLeft45.Hide(); 1968dcb2a10SAndre Fischer maBtnRight45.Hide(); 1978dcb2a10SAndre Fischer 1988dcb2a10SAndre Fischer SetSizePixel(aSize2); 1998dcb2a10SAndre Fischer 2008dcb2a10SAndre Fischer break; 2018dcb2a10SAndre Fischer 2028dcb2a10SAndre Fischer case XGRAD_ELLIPTICAL: 2038dcb2a10SAndre Fischer case XGRAD_SQUARE: 2048dcb2a10SAndre Fischer case XGRAD_RECT: 2058dcb2a10SAndre Fischer maFtTrgrCenterX.Show(); 2068dcb2a10SAndre Fischer maFtTrgrCenterX.SetPosPixel(APOS1_1); 2078dcb2a10SAndre Fischer maMtrTrgrCenterX.Show(); 2088dcb2a10SAndre Fischer maMtrTrgrCenterX.SetPosPixel(APOS2_1); 2098dcb2a10SAndre Fischer maFtTrgrCenterY.Show(); 2108dcb2a10SAndre Fischer maFtTrgrCenterY.SetPosPixel(APOS1_2); 2118dcb2a10SAndre Fischer maMtrTrgrCenterY.Show(); 2128dcb2a10SAndre Fischer maMtrTrgrCenterY.SetPosPixel(APOS2_2); 2138dcb2a10SAndre Fischer maFtTrgrAngle.Show(); 2148dcb2a10SAndre Fischer maFtTrgrAngle.SetPosPixel(APOS1_3); 2158dcb2a10SAndre Fischer maMtrTrgrAngle.Show(); 2168dcb2a10SAndre Fischer maMtrTrgrAngle.SetPosPixel(APOS1_4); 2178dcb2a10SAndre Fischer 2188dcb2a10SAndre Fischer maFtTrgrStartValue.SetPosPixel(APOS1_5); 2198dcb2a10SAndre Fischer maMtrTrgrStartValue.SetPosPixel(APOS1_6); 2208dcb2a10SAndre Fischer maFtTrgrEndValue.SetPosPixel(APOS2_5); 2218dcb2a10SAndre Fischer maMtrTrgrEndValue.SetPosPixel(APOS2_6); 2228dcb2a10SAndre Fischer maFtTrgrBorder.SetPosPixel(APOS1_7); 2238dcb2a10SAndre Fischer maMtrTrgrBorder.SetPosPixel(APOS1_8); 2248dcb2a10SAndre Fischer 2258dcb2a10SAndre Fischer maBtnLeft45.Show(); 2268dcb2a10SAndre Fischer maBtnRight45.Show(); 2278dcb2a10SAndre Fischer 2288dcb2a10SAndre Fischer aPointAngle = maMtrTrgrAngle.GetPosPixel(); 2298dcb2a10SAndre Fischer aPosY = aPointAngle.getY() + aSizeAngle.getHeight() - aTbxSize.getHeight(); 2308dcb2a10SAndre Fischer 2318dcb2a10SAndre Fischer maBtnLeft45.SetPosPixel(Point(APOS_Left_Right_3.getX(), aPosY)); 2328dcb2a10SAndre Fischer maBtnRight45.SetPosPixel(Point(APOS_Left_Right_4.getX(), aPosY)); 2338dcb2a10SAndre Fischer 2348dcb2a10SAndre Fischer SetSizePixel(aSize); 2358dcb2a10SAndre Fischer 2368dcb2a10SAndre Fischer break; 2378dcb2a10SAndre Fischer } 2388dcb2a10SAndre Fischer } 2398dcb2a10SAndre Fischer 2408dcb2a10SAndre Fischer 2418dcb2a10SAndre Fischer 2428dcb2a10SAndre Fischer 2438dcb2a10SAndre Fischer void AreaTransparencyGradientControl::InitStatus(XFillFloatTransparenceItem* pGradientItem) 2448dcb2a10SAndre Fischer { 2458dcb2a10SAndre Fischer const XGradient& rGradient = pGradientItem->GetGradientValue(); 2468dcb2a10SAndre Fischer 2478dcb2a10SAndre Fischer XGradient aGradient; 2488dcb2a10SAndre Fischer 2498dcb2a10SAndre Fischer if (rGradient.GetXOffset() == AreaPropertyPanel::DEFAULT_CENTERX 2508dcb2a10SAndre Fischer && rGradient.GetYOffset() == AreaPropertyPanel::DEFAULT_CENTERY 2518dcb2a10SAndre Fischer && (rGradient.GetAngle() / 10) == AreaPropertyPanel::DEFAULT_ANGLE 2528dcb2a10SAndre Fischer && ((sal_uInt16)((((sal_uInt16)rGradient.GetStartColor().GetRed() + 1) * 100) / 255)) 2538dcb2a10SAndre Fischer == AreaPropertyPanel::DEFAULT_STARTVALUE 2548dcb2a10SAndre Fischer && ((sal_uInt16)((((sal_uInt16)rGradient.GetEndColor().GetRed() + 1) * 100) / 255)) 2558dcb2a10SAndre Fischer == AreaPropertyPanel::DEFAULT_ENDVALUE 2568dcb2a10SAndre Fischer && rGradient.GetBorder() == AreaPropertyPanel::DEFAULT_BORDER) 2578dcb2a10SAndre Fischer { 2588dcb2a10SAndre Fischer aGradient = mrAreaPropertyPanel.GetGradient(rGradient.GetGradientStyle()); 2598dcb2a10SAndre Fischer } 2608dcb2a10SAndre Fischer else 2618dcb2a10SAndre Fischer { 2628dcb2a10SAndre Fischer aGradient = rGradient; 2638dcb2a10SAndre Fischer } 2648dcb2a10SAndre Fischer maMtrTrgrCenterX.SetValue(aGradient.GetXOffset()); 2658dcb2a10SAndre Fischer maMtrTrgrCenterY.SetValue(aGradient.GetYOffset()); 2668dcb2a10SAndre Fischer maMtrTrgrAngle.SetValue(aGradient.GetAngle() / 10); 2678dcb2a10SAndre Fischer maMtrTrgrStartValue.SetValue((sal_uInt16)((((sal_uInt16)aGradient.GetStartColor().GetRed() + 1) * 100) / 255)); 2688dcb2a10SAndre Fischer maMtrTrgrEndValue.SetValue((sal_uInt16)((((sal_uInt16)aGradient.GetEndColor().GetRed() + 1) * 100) / 255)); 2698dcb2a10SAndre Fischer maMtrTrgrBorder.SetValue(aGradient.GetBorder()); 2708dcb2a10SAndre Fischer } 2718dcb2a10SAndre Fischer 2728dcb2a10SAndre Fischer 2738dcb2a10SAndre Fischer 2748dcb2a10SAndre Fischer 2758dcb2a10SAndre Fischer void AreaTransparencyGradientControl::ExecuteValueModify( sal_uInt8 nStartCol, sal_uInt8 nEndCol ) 2768dcb2a10SAndre Fischer { 2778dcb2a10SAndre Fischer //Added 2788dcb2a10SAndre Fischer sal_Int16 aMtrValue = (sal_Int16)maMtrTrgrAngle.GetValue(); 2798dcb2a10SAndre Fischer while(aMtrValue<0) 2808dcb2a10SAndre Fischer aMtrValue += 360; 2818dcb2a10SAndre Fischer sal_uInt16 nVal = aMtrValue/360; 2828dcb2a10SAndre Fischer nVal = aMtrValue - nVal*360; 2838dcb2a10SAndre Fischer maMtrTrgrAngle.SetValue(nVal); 2848dcb2a10SAndre Fischer //End of new code 2858dcb2a10SAndre Fischer XGradient aTmpGradient( 2868dcb2a10SAndre Fischer Color(nStartCol, nStartCol, nStartCol), 2878dcb2a10SAndre Fischer Color(nEndCol, nEndCol, nEndCol), 2888dcb2a10SAndre Fischer (XGradientStyle)(mrAreaPropertyPanel.GetSelectedTransparencyTypeIndex()-2), 2898dcb2a10SAndre Fischer (sal_uInt16)maMtrTrgrAngle.GetValue() * 10, 2908dcb2a10SAndre Fischer (sal_uInt16)maMtrTrgrCenterX.GetValue(), 2918dcb2a10SAndre Fischer (sal_uInt16)maMtrTrgrCenterY.GetValue(), 2928dcb2a10SAndre Fischer (sal_uInt16)maMtrTrgrBorder.GetValue(), 2938dcb2a10SAndre Fischer 100, 100); 2948dcb2a10SAndre Fischer 2958dcb2a10SAndre Fischer mrAreaPropertyPanel.SetGradient(aTmpGradient); 2968dcb2a10SAndre Fischer 2978dcb2a10SAndre Fischer SfxItemPool* pPool = NULL; 2988dcb2a10SAndre Fischer bool bEnable = true; 2998dcb2a10SAndre Fischer XFillFloatTransparenceItem aGradientItem(pPool,aTmpGradient, bEnable ); 3008dcb2a10SAndre Fischer 3018dcb2a10SAndre Fischer mpBindings->GetDispatcher()->Execute( SID_ATTR_FILL_FLOATTRANSPARENCE, SFX_CALLMODE_RECORD, &aGradientItem, 0L ); 3028dcb2a10SAndre Fischer } 3038dcb2a10SAndre Fischer 3048dcb2a10SAndre Fischer 3058dcb2a10SAndre Fischer 3068dcb2a10SAndre Fischer 307ae981a91SPavel Janík IMPL_LINK(AreaTransparencyGradientControl, ModifiedTrgrHdl_Impl, void *, /* pControl */) 3088dcb2a10SAndre Fischer { 3098dcb2a10SAndre Fischer sal_uInt8 nStartCol = (sal_uInt8)(((sal_uInt16)maMtrTrgrStartValue.GetValue() * 255) / 100); 3108dcb2a10SAndre Fischer sal_uInt8 nEndCol = (sal_uInt8)(((sal_uInt16)maMtrTrgrEndValue.GetValue() * 255) / 100); 3118dcb2a10SAndre Fischer ExecuteValueModify( nStartCol, nEndCol ); 3128dcb2a10SAndre Fischer return( 0L ); 3138dcb2a10SAndre Fischer } 3148dcb2a10SAndre Fischer 3158dcb2a10SAndre Fischer 3168dcb2a10SAndre Fischer 3178dcb2a10SAndre Fischer 318ae981a91SPavel Janík IMPL_LINK(AreaTransparencyGradientControl, Left_Click45_Impl, void *, /* pControl */) 3198dcb2a10SAndre Fischer { 3208dcb2a10SAndre Fischer sal_uInt8 nStartCol = (sal_uInt8)(((sal_uInt16)maMtrTrgrStartValue.GetValue() * 255) / 100); 3218dcb2a10SAndre Fischer sal_uInt8 nEndCol = (sal_uInt8)(((sal_uInt16)maMtrTrgrEndValue.GetValue() * 255) / 100); 3228dcb2a10SAndre Fischer sal_uInt16 aTemp = (sal_uInt16)maMtrTrgrAngle.GetValue(); 3238dcb2a10SAndre Fischer if(aTemp>=315) 3248dcb2a10SAndre Fischer aTemp -= 360; 3258dcb2a10SAndre Fischer aTemp += 45; 3268dcb2a10SAndre Fischer maMtrTrgrAngle.SetValue(aTemp); 3278dcb2a10SAndre Fischer ExecuteValueModify( nStartCol, nEndCol ); 3288dcb2a10SAndre Fischer return( 0L ); 3298dcb2a10SAndre Fischer } 3308dcb2a10SAndre Fischer 3318dcb2a10SAndre Fischer 3328dcb2a10SAndre Fischer 3338dcb2a10SAndre Fischer 334ae981a91SPavel Janík IMPL_LINK(AreaTransparencyGradientControl, Right_Click45_Impl, void *, /* pControl */) 3358dcb2a10SAndre Fischer { 3368dcb2a10SAndre Fischer sal_uInt8 nStartCol = (sal_uInt8)(((sal_uInt16)maMtrTrgrStartValue.GetValue() * 255) / 100); 3378dcb2a10SAndre Fischer sal_uInt8 nEndCol = (sal_uInt8)(((sal_uInt16)maMtrTrgrEndValue.GetValue() * 255) / 100); 3388dcb2a10SAndre Fischer sal_uInt16 aTemp = (sal_uInt16)maMtrTrgrAngle.GetValue(); 3398dcb2a10SAndre Fischer if(aTemp<45) 3408dcb2a10SAndre Fischer aTemp += 360; 3418dcb2a10SAndre Fischer aTemp -= 45; 3428dcb2a10SAndre Fischer maMtrTrgrAngle.SetValue(aTemp); 3438dcb2a10SAndre Fischer ExecuteValueModify( nStartCol, nEndCol ); 3448dcb2a10SAndre Fischer return( 0L ); 3458dcb2a10SAndre Fischer } 3468dcb2a10SAndre Fischer 3478dcb2a10SAndre Fischer } } // end of namespace svx::sidebar 3484e8031e0SArmin Le Grand 3494e8031e0SArmin Le Grand // eof 350