xref: /trunk/main/svx/source/sidebar/graphic/GraphicPropertyPanel.cxx (revision 6e496631967b81de2ca58b050aa221fc91b6c02b)
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 
22*6e496631Smseidel 
23*6e496631Smseidel 
24d29c2fc2SAndre Fischer #include <sfx2/sidebar/ResourceDefinitions.hrc>
258dcb2a10SAndre Fischer #include <sfx2/sidebar/Theme.hxx>
268dcb2a10SAndre Fischer #include <sfx2/sidebar/ControlFactory.hxx>
276a606da0SAndre Fischer #include <sfx2/sidebar/Layouter.hxx>
288dcb2a10SAndre Fischer #include <GraphicPropertyPanel.hxx>
298dcb2a10SAndre Fischer #include <GraphicPropertyPanel.hrc>
308dcb2a10SAndre Fischer #include <svx/dialogs.hrc>
318dcb2a10SAndre Fischer #include <svx/dialmgr.hxx>
328dcb2a10SAndre Fischer #include <vcl/field.hxx>
338dcb2a10SAndre Fischer #include <vcl/lstbox.hxx>
348dcb2a10SAndre Fischer #include <svl/intitem.hxx>
358dcb2a10SAndre Fischer #include <sfx2/bindings.hxx>
368dcb2a10SAndre Fischer #include <sfx2/dispatch.hxx>
3787ab04d0SAndre Fischer #include "svx/dialogs.hrc"
388dcb2a10SAndre Fischer 
398dcb2a10SAndre Fischer using namespace css;
408dcb2a10SAndre Fischer using namespace cssu;
416a606da0SAndre Fischer using ::sfx2::sidebar::Layouter;
428dcb2a10SAndre Fischer using ::sfx2::sidebar::Theme;
438dcb2a10SAndre Fischer 
448dcb2a10SAndre Fischer #define A2S(pString) (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(pString)))
458dcb2a10SAndre Fischer 
468dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
476a606da0SAndre Fischer 
488dcb2a10SAndre Fischer 
498dcb2a10SAndre Fischer namespace svx { namespace sidebar {
508dcb2a10SAndre Fischer 
518dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
528dcb2a10SAndre Fischer 
GraphicPropertyPanel(Window * pParent,const cssu::Reference<css::frame::XFrame> & rxFrame,SfxBindings * pBindings)538dcb2a10SAndre Fischer GraphicPropertyPanel::GraphicPropertyPanel(
548dcb2a10SAndre Fischer     Window* pParent,
558dcb2a10SAndre Fischer     const cssu::Reference<css::frame::XFrame>& rxFrame,
568dcb2a10SAndre Fischer     SfxBindings* pBindings)
578dcb2a10SAndre Fischer :   Control(
588dcb2a10SAndre Fischer         pParent,
598dcb2a10SAndre Fischer         SVX_RES(RID_SIDEBAR_GRAPHIC_PANEL)),
608dcb2a10SAndre Fischer     mpFtBrightness(new FixedText(this, SVX_RES(FT_BRIGHTNESS))),
618dcb2a10SAndre Fischer     mpMtrBrightness(new MetricField(this, SVX_RES(MTR_BRIGHTNESS))),
628dcb2a10SAndre Fischer     mpFtContrast(new FixedText(this, SVX_RES(FT_CONTRAST))),
638dcb2a10SAndre Fischer     mpMtrContrast(new MetricField(this, SVX_RES(MTR_CONTRAST))),
648dcb2a10SAndre Fischer     mpFtColorMode(new FixedText(this, SVX_RES(FT_COLOR_MODE))),
658dcb2a10SAndre Fischer     mpLBColorMode(new ListBox(this, SVX_RES(LB_COLOR_MODE))),
668dcb2a10SAndre Fischer     mpFtTrans(new FixedText(this, SVX_RES(FT_TRANSPARENT))),
678dcb2a10SAndre Fischer     mpMtrTrans(new MetricField(this, SVX_RES(MTR_TRANSPARENT))),
688dcb2a10SAndre Fischer     mpMtrRed(new MetricField(this, SVX_RES(MF_RED))),
698dcb2a10SAndre Fischer     mpMtrGreen(new MetricField(this, SVX_RES(MF_GREEN))),
708dcb2a10SAndre Fischer     mpMtrBlue(new MetricField(this, SVX_RES(MF_BLUE))),
718dcb2a10SAndre Fischer     mpMtrGamma(new MetricField(this, SVX_RES(MF_GAMMA))),
728dcb2a10SAndre Fischer     maBrightControl(SID_ATTR_GRAF_LUMINANCE, *pBindings, *this),
738dcb2a10SAndre Fischer     maContrastControl(SID_ATTR_GRAF_CONTRAST, *pBindings, *this),
748dcb2a10SAndre Fischer     maTransparenceControl(SID_ATTR_GRAF_TRANSPARENCE, *pBindings, *this),
758dcb2a10SAndre Fischer     maRedControl(SID_ATTR_GRAF_RED, *pBindings, *this),
768dcb2a10SAndre Fischer     maGreenControl(SID_ATTR_GRAF_GREEN, *pBindings, *this),
778dcb2a10SAndre Fischer     maBlueControl(SID_ATTR_GRAF_BLUE, *pBindings, *this),
788dcb2a10SAndre Fischer     maGammaControl(SID_ATTR_GRAF_GAMMA, *pBindings, *this),
798dcb2a10SAndre Fischer     maModeControl(SID_ATTR_GRAF_MODE, *pBindings, *this),
808dcb2a10SAndre Fischer     maImgRed(this, SVX_RES(IMG_RED)),
818dcb2a10SAndre Fischer     maImgGreen(this, SVX_RES(IMG_GREEN)),
828dcb2a10SAndre Fischer     maImgBlue(this, SVX_RES(IMG_BLUE)),
838dcb2a10SAndre Fischer     maImgGamma(this, SVX_RES(IMG_GAMMA)),
848dcb2a10SAndre Fischer     mxFrame(rxFrame),
856a606da0SAndre Fischer     mpBindings(pBindings),
866a606da0SAndre Fischer     maLayouter(*this)
878dcb2a10SAndre Fischer {
888dcb2a10SAndre Fischer     Initialize();
898dcb2a10SAndre Fischer     FreeResource();
906a606da0SAndre Fischer 
916a606da0SAndre Fischer     // Setup the grid layouter.
926a606da0SAndre Fischer     maLayouter.GetCell(0,0).SetControl(*mpFtBrightness).SetGridWidth(2);
936a606da0SAndre Fischer     maLayouter.GetCell(1,0).SetControl(*mpMtrBrightness).SetGridWidth(2);
946a606da0SAndre Fischer 
956a606da0SAndre Fischer     maLayouter.GetCell(0,3).SetControl(*mpFtContrast).SetGridWidth(2);
966a606da0SAndre Fischer     maLayouter.GetCell(1,3).SetControl(*mpMtrContrast).SetGridWidth(2);
976a606da0SAndre Fischer 
986a606da0SAndre Fischer     maLayouter.GetCell(2,0).SetControl(*mpFtColorMode).SetGridWidth(2);
996a606da0SAndre Fischer     maLayouter.GetCell(3,0).SetControl(*mpLBColorMode).SetGridWidth(2);
1006a606da0SAndre Fischer 
1016a606da0SAndre Fischer     maLayouter.GetCell(2,3).SetControl(*mpFtTrans).SetGridWidth(2);
1026a606da0SAndre Fischer     maLayouter.GetCell(3,3).SetControl(*mpMtrTrans).SetGridWidth(2);
1036a606da0SAndre Fischer 
1046a606da0SAndre Fischer     maLayouter.GetCell(4,0).SetControl(maImgRed).SetFixedWidth();
1056a606da0SAndre Fischer     maLayouter.GetCell(4,1).SetControl(*mpMtrRed);
1066a606da0SAndre Fischer 
1076a606da0SAndre Fischer     maLayouter.GetCell(5,0).SetControl(maImgBlue).SetFixedWidth();
1086a606da0SAndre Fischer     maLayouter.GetCell(5,1).SetControl(*mpMtrBlue);
1096a606da0SAndre Fischer 
1106a606da0SAndre Fischer     maLayouter.GetCell(4,3).SetControl(maImgGreen).SetFixedWidth();
1116a606da0SAndre Fischer     maLayouter.GetCell(4,4).SetControl(*mpMtrGreen);
1126a606da0SAndre Fischer     maLayouter.GetCell(5,3).SetControl(maImgGamma).SetFixedWidth();
1136a606da0SAndre Fischer     maLayouter.GetCell(5,4).SetControl(*mpMtrGamma);
1146a606da0SAndre Fischer 
1156a606da0SAndre Fischer     maLayouter.GetColumn(0)
1166a606da0SAndre Fischer         .SetWeight(0)
1176a606da0SAndre Fischer         .SetLeftPadding(Layouter::MapWidth(*this,SECTIONPAGE_MARGIN_HORIZONTAL));
1186a606da0SAndre Fischer     maLayouter.GetColumn(1)
1196a606da0SAndre Fischer         .SetWeight(1)
1206a606da0SAndre Fischer         .SetMinimumWidth(Layouter::MapWidth(*this, MBOX_WIDTH - 10));
1216a606da0SAndre Fischer     maLayouter.GetColumn(2)
1226a606da0SAndre Fischer         .SetWeight(0)
1236a606da0SAndre Fischer         .SetMinimumWidth(Layouter::MapWidth(*this, CONTROL_SPACING_HORIZONTAL));
1246a606da0SAndre Fischer     maLayouter.GetColumn(3)
1256a606da0SAndre Fischer         .SetWeight(0);
1266a606da0SAndre Fischer     maLayouter.GetColumn(4)
1276a606da0SAndre Fischer         .SetWeight(1)
1286a606da0SAndre Fischer         .SetMinimumWidth(Layouter::MapWidth(*this, MBOX_WIDTH - 10))
1296a606da0SAndre Fischer         .SetRightPadding(Layouter::MapWidth(*this,SECTIONPAGE_MARGIN_HORIZONTAL));
1306a606da0SAndre Fischer 
1316a606da0SAndre Fischer     // Make controls that display text handle short widths more
1326a606da0SAndre Fischer     // graceful.
1336a606da0SAndre Fischer     Layouter::PrepareForLayouting(*mpFtBrightness);
1346a606da0SAndre Fischer     Layouter::PrepareForLayouting(*mpFtContrast);
1356a606da0SAndre Fischer     Layouter::PrepareForLayouting(*mpFtColorMode);
1366a606da0SAndre Fischer     Layouter::PrepareForLayouting(*mpFtTrans);
1378dcb2a10SAndre Fischer }
1388dcb2a10SAndre Fischer 
1398dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
1408dcb2a10SAndre Fischer 
~GraphicPropertyPanel()1418dcb2a10SAndre Fischer GraphicPropertyPanel::~GraphicPropertyPanel()
1428dcb2a10SAndre Fischer {
1438dcb2a10SAndre Fischer }
1448dcb2a10SAndre Fischer 
1458dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
1468dcb2a10SAndre Fischer 
Initialize()1478dcb2a10SAndre Fischer void GraphicPropertyPanel::Initialize()
1488dcb2a10SAndre Fischer {
14937fee4fdSAndre Fischer     mpFtBrightness->SetBackground(Wallpaper());
15037fee4fdSAndre Fischer     mpFtContrast->SetBackground(Wallpaper());
15137fee4fdSAndre Fischer     mpFtColorMode->SetBackground(Wallpaper());
15237fee4fdSAndre Fischer     mpFtTrans->SetBackground(Wallpaper());
15337fee4fdSAndre Fischer 
1548dcb2a10SAndre Fischer     mpMtrBrightness->SetModifyHdl( LINK( this, GraphicPropertyPanel, ModifyBrightnessHdl ) );
15587ab04d0SAndre Fischer     mpMtrBrightness->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Brightness")));
1568dcb2a10SAndre Fischer     mpMtrContrast->SetModifyHdl( LINK( this, GraphicPropertyPanel, ModifyContrastHdl ) );
15787ab04d0SAndre Fischer     mpMtrContrast->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Contrast")));
1588dcb2a10SAndre Fischer     mpMtrTrans->SetModifyHdl( LINK( this, GraphicPropertyPanel, ModifyTransHdl ) );
15987ab04d0SAndre Fischer     mpMtrTrans->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Transparency")));
1608dcb2a10SAndre Fischer 
16187ab04d0SAndre Fischer     mpLBColorMode->InsertEntry(String(SVX_RES(RID_SVXSTR_GRAFMODE_STANDARD)));
16287ab04d0SAndre Fischer     mpLBColorMode->InsertEntry(String(SVX_RES(RID_SVXSTR_GRAFMODE_GREYS)));
16387ab04d0SAndre Fischer     mpLBColorMode->InsertEntry(String(SVX_RES(RID_SVXSTR_GRAFMODE_MONO)));
16487ab04d0SAndre Fischer     mpLBColorMode->InsertEntry(String(SVX_RES(RID_SVXSTR_GRAFMODE_WATERMARK)));
1658dcb2a10SAndre Fischer     mpLBColorMode->SetSelectHdl( LINK( this, GraphicPropertyPanel, ClickColorModeHdl ));
16687ab04d0SAndre Fischer     mpLBColorMode->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Color mode")));
1678dcb2a10SAndre Fischer 
1688dcb2a10SAndre Fischer     mpMtrRed->SetModifyHdl( LINK( this, GraphicPropertyPanel, RedHdl ) );
1698dcb2a10SAndre Fischer     mpMtrGreen->SetModifyHdl( LINK( this, GraphicPropertyPanel, GreenHdl ) );
1708dcb2a10SAndre Fischer     mpMtrBlue->SetModifyHdl( LINK( this, GraphicPropertyPanel, BlueHdl ) );
1718dcb2a10SAndre Fischer     mpMtrGamma->SetModifyHdl( LINK( this, GraphicPropertyPanel, GammaHdl ) );
17287ab04d0SAndre Fischer     mpMtrRed->SetAccessibleName(mpMtrRed->GetQuickHelpText());
17387ab04d0SAndre Fischer     mpMtrGreen->SetAccessibleName(mpMtrGreen->GetQuickHelpText());
17487ab04d0SAndre Fischer     mpMtrBlue->SetAccessibleName(mpMtrBlue->GetQuickHelpText());
17587ab04d0SAndre Fischer     mpMtrGamma->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Gamma value")));
1768dcb2a10SAndre Fischer 
1778dcb2a10SAndre Fischer     mpMtrRed->SetAccessibleRelationLabeledBy(mpMtrRed.get());
1788dcb2a10SAndre Fischer     mpMtrGreen->SetAccessibleRelationLabeledBy(mpMtrGreen.get());
1798dcb2a10SAndre Fischer     mpMtrBlue->SetAccessibleRelationLabeledBy(mpMtrBlue.get());
1808dcb2a10SAndre Fischer     mpMtrGamma->SetAccessibleRelationLabeledBy(mpMtrGamma.get());
18187ab04d0SAndre Fischer     mpMtrBrightness->SetAccessibleRelationLabeledBy(mpFtBrightness.get());
18287ab04d0SAndre Fischer     mpMtrContrast->SetAccessibleRelationLabeledBy(mpFtContrast.get());
18387ab04d0SAndre Fischer     mpMtrTrans->SetAccessibleRelationLabeledBy(mpFtTrans.get());
18487ab04d0SAndre Fischer     mpLBColorMode->SetAccessibleRelationLabeledBy(mpFtColorMode.get());
18587ab04d0SAndre Fischer 
18687ab04d0SAndre Fischer     // Fix left position of some controls that may be wrong due to
18787ab04d0SAndre Fischer     // rounding errors.
18887ab04d0SAndre Fischer     const sal_Int32 nRight0 (mpLBColorMode->GetPosPixel().X() + mpLBColorMode->GetSizePixel().Width());
18987ab04d0SAndre Fischer     const sal_Int32 nRight1 (mpMtrTrans->GetPosPixel().X() + mpMtrTrans->GetSizePixel().Width());
19087ab04d0SAndre Fischer     mpMtrRed->SetPosPixel(Point(
19187ab04d0SAndre Fischer             nRight0 - mpMtrRed->GetSizePixel().Width(),
19287ab04d0SAndre Fischer             mpMtrRed->GetPosPixel().Y()));
19387ab04d0SAndre Fischer     mpMtrBlue->SetPosPixel(Point(
19487ab04d0SAndre Fischer             nRight0 - mpMtrBlue->GetSizePixel().Width(),
19587ab04d0SAndre Fischer             mpMtrBlue->GetPosPixel().Y()));
19687ab04d0SAndre Fischer     mpMtrGreen->SetPosPixel(Point(
19787ab04d0SAndre Fischer             nRight1 - mpMtrGreen->GetSizePixel().Width(),
19887ab04d0SAndre Fischer             mpMtrGreen->GetPosPixel().Y()));
19987ab04d0SAndre Fischer     mpMtrGamma->SetPosPixel(Point(
20087ab04d0SAndre Fischer             nRight1 - mpMtrGamma->GetSizePixel().Width(),
20187ab04d0SAndre Fischer             mpMtrGamma->GetPosPixel().Y()));
2028dcb2a10SAndre Fischer }
2038dcb2a10SAndre Fischer 
20487ab04d0SAndre Fischer 
20587ab04d0SAndre Fischer 
20687ab04d0SAndre Fischer 
2078dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2088dcb2a10SAndre Fischer 
IMPL_LINK(GraphicPropertyPanel,ModifyBrightnessHdl,void *,EMPTYARG)2098dcb2a10SAndre Fischer IMPL_LINK( GraphicPropertyPanel, ModifyBrightnessHdl, void *, EMPTYARG )
2108dcb2a10SAndre Fischer {
211d74d90d6SArmin Le Grand     const sal_Int16 nBright = mpMtrBrightness->GetValue();
212d74d90d6SArmin Le Grand     const SfxInt16Item aBrightItem( SID_ATTR_GRAF_LUMINANCE, nBright );
213d74d90d6SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_LUMINANCE, SFX_CALLMODE_RECORD, &aBrightItem, 0L);
2148dcb2a10SAndre Fischer     return 0L;
2158dcb2a10SAndre Fischer }
2168dcb2a10SAndre Fischer 
2178dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2188dcb2a10SAndre Fischer 
IMPL_LINK(GraphicPropertyPanel,ModifyContrastHdl,void *,EMPTYARG)2198dcb2a10SAndre Fischer IMPL_LINK( GraphicPropertyPanel, ModifyContrastHdl, void *, EMPTYARG )
2208dcb2a10SAndre Fischer {
221d74d90d6SArmin Le Grand     const sal_Int16 nContrast = mpMtrContrast->GetValue();
222d74d90d6SArmin Le Grand     const SfxInt16Item aContrastItem( SID_ATTR_GRAF_CONTRAST, nContrast );
223d74d90d6SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_CONTRAST, SFX_CALLMODE_RECORD, &aContrastItem, 0L);
2248dcb2a10SAndre Fischer     return 0L;
2258dcb2a10SAndre Fischer }
2268dcb2a10SAndre Fischer 
2278dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2288dcb2a10SAndre Fischer 
IMPL_LINK(GraphicPropertyPanel,ModifyTransHdl,void *,EMPTYARG)2298dcb2a10SAndre Fischer IMPL_LINK( GraphicPropertyPanel, ModifyTransHdl, void *, EMPTYARG )
2308dcb2a10SAndre Fischer {
231d74d90d6SArmin Le Grand     const sal_Int16 nTrans = mpMtrTrans->GetValue();
232d74d90d6SArmin Le Grand     const SfxInt16Item aTransItem( SID_ATTR_GRAF_TRANSPARENCE, nTrans );
233d74d90d6SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_TRANSPARENCE, SFX_CALLMODE_RECORD, &aTransItem, 0L);
2348dcb2a10SAndre Fischer     return 0L;
2358dcb2a10SAndre Fischer }
2368dcb2a10SAndre Fischer 
2378dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2388dcb2a10SAndre Fischer 
239e89b8a96SPavel Janík IMPL_LINK( GraphicPropertyPanel, ClickColorModeHdl, ToolBox *, /* pBox */)
2408dcb2a10SAndre Fischer {
241d74d90d6SArmin Le Grand     const sal_Int16 nTrans = mpLBColorMode->GetSelectEntryPos();
242d74d90d6SArmin Le Grand     const SfxInt16Item aTransItem( SID_ATTR_GRAF_MODE, nTrans );
243d74d90d6SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_MODE, SFX_CALLMODE_RECORD, &aTransItem, 0L);
2448dcb2a10SAndre Fischer     return 0L;
2458dcb2a10SAndre Fischer }
2468dcb2a10SAndre Fischer 
2478dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2488dcb2a10SAndre Fischer 
IMPL_LINK(GraphicPropertyPanel,RedHdl,void *,EMPTYARG)2498dcb2a10SAndre Fischer IMPL_LINK( GraphicPropertyPanel, RedHdl, void*, EMPTYARG )
2508dcb2a10SAndre Fischer {
251d74d90d6SArmin Le Grand     const sal_Int16 nRed = mpMtrRed->GetValue();
252d74d90d6SArmin Le Grand     const SfxInt16Item aRedItem( SID_ATTR_GRAF_RED, nRed );
253d74d90d6SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_RED, SFX_CALLMODE_RECORD, &aRedItem, 0L);
2548dcb2a10SAndre Fischer     return 0L;
2558dcb2a10SAndre Fischer }
2568dcb2a10SAndre Fischer 
2578dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2588dcb2a10SAndre Fischer 
IMPL_LINK(GraphicPropertyPanel,GreenHdl,void *,EMPTYARG)2598dcb2a10SAndre Fischer IMPL_LINK( GraphicPropertyPanel, GreenHdl, void*, EMPTYARG )
2608dcb2a10SAndre Fischer {
261d74d90d6SArmin Le Grand     const sal_Int16 nGreen = mpMtrGreen->GetValue();
262d74d90d6SArmin Le Grand     const SfxInt16Item aGreenItem( SID_ATTR_GRAF_GREEN, nGreen );
263d74d90d6SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_GREEN, SFX_CALLMODE_RECORD, &aGreenItem, 0L);
2648dcb2a10SAndre Fischer     return 0L;
2658dcb2a10SAndre Fischer }
2668dcb2a10SAndre Fischer 
2678dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2688dcb2a10SAndre Fischer 
IMPL_LINK(GraphicPropertyPanel,BlueHdl,void *,EMPTYARG)2698dcb2a10SAndre Fischer IMPL_LINK(GraphicPropertyPanel, BlueHdl, void *, EMPTYARG)
2708dcb2a10SAndre Fischer {
271d74d90d6SArmin Le Grand     const sal_Int16 nBlue = mpMtrBlue->GetValue();
272d74d90d6SArmin Le Grand     const SfxInt16Item aBlueItem( SID_ATTR_GRAF_BLUE, nBlue );
273d74d90d6SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_BLUE, SFX_CALLMODE_RECORD, &aBlueItem, 0L);
2748dcb2a10SAndre Fischer     return 0L;
2758dcb2a10SAndre Fischer }
2768dcb2a10SAndre Fischer 
2778dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2788dcb2a10SAndre Fischer 
IMPL_LINK(GraphicPropertyPanel,GammaHdl,void *,EMPTYARG)2798dcb2a10SAndre Fischer IMPL_LINK(GraphicPropertyPanel, GammaHdl, void *, EMPTYARG)
2808dcb2a10SAndre Fischer {
281d74d90d6SArmin Le Grand     const sal_Int32 nGamma = mpMtrGamma->GetValue();
282d74d90d6SArmin Le Grand     const SfxInt32Item nGammaItem( SID_ATTR_GRAF_GAMMA, nGamma );
283d74d90d6SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_GAMMA, SFX_CALLMODE_RECORD, &nGammaItem, 0L);
2848dcb2a10SAndre Fischer     return 0L;
2858dcb2a10SAndre Fischer }
2868dcb2a10SAndre Fischer 
2878dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2888dcb2a10SAndre Fischer 
SetupIcons(void)2898dcb2a10SAndre Fischer void GraphicPropertyPanel::SetupIcons(void)
2908dcb2a10SAndre Fischer {
2918dcb2a10SAndre Fischer     if(Theme::GetBoolean(Theme::Bool_UseSymphonyIcons))
2928dcb2a10SAndre Fischer     {
2938dcb2a10SAndre Fischer         // todo
2948dcb2a10SAndre Fischer     }
2958dcb2a10SAndre Fischer     else
2968dcb2a10SAndre Fischer     {
2978dcb2a10SAndre Fischer         // todo
2988dcb2a10SAndre Fischer     }
2998dcb2a10SAndre Fischer }
3008dcb2a10SAndre Fischer 
3018dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
3028dcb2a10SAndre Fischer 
Create(Window * pParent,const cssu::Reference<css::frame::XFrame> & rxFrame,SfxBindings * pBindings)3038dcb2a10SAndre Fischer GraphicPropertyPanel* GraphicPropertyPanel::Create (
3048dcb2a10SAndre Fischer     Window* pParent,
3058dcb2a10SAndre Fischer     const cssu::Reference<css::frame::XFrame>& rxFrame,
3068dcb2a10SAndre Fischer     SfxBindings* pBindings)
3078dcb2a10SAndre Fischer {
3088dcb2a10SAndre Fischer     if (pParent == NULL)
309*6e496631Smseidel         throw lang::IllegalArgumentException(A2S("no parent window given to GraphicPropertyPanel::Create"), NULL, 0);
3108dcb2a10SAndre Fischer     if ( ! rxFrame.is())
3118dcb2a10SAndre Fischer         throw lang::IllegalArgumentException(A2S("no XFrame given to GraphicPropertyPanel::Create"), NULL, 1);
3128dcb2a10SAndre Fischer     if (pBindings == NULL)
3138dcb2a10SAndre Fischer         throw lang::IllegalArgumentException(A2S("no SfxBindings given to GraphicPropertyPanel::Create"), NULL, 2);
3148dcb2a10SAndre Fischer 
3158dcb2a10SAndre Fischer     return new GraphicPropertyPanel(
3168dcb2a10SAndre Fischer         pParent,
3178dcb2a10SAndre Fischer         rxFrame,
3188dcb2a10SAndre Fischer         pBindings);
3198dcb2a10SAndre Fischer }
3208dcb2a10SAndre Fischer 
3218dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
3228dcb2a10SAndre Fischer 
DataChanged(const DataChangedEvent & rEvent)3238dcb2a10SAndre Fischer void GraphicPropertyPanel::DataChanged(
3248dcb2a10SAndre Fischer     const DataChangedEvent& rEvent)
3258dcb2a10SAndre Fischer {
3268dcb2a10SAndre Fischer     (void)rEvent;
3278dcb2a10SAndre Fischer 
3288dcb2a10SAndre Fischer     SetupIcons();
3298dcb2a10SAndre Fischer }
3308dcb2a10SAndre Fischer 
3318dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
3328dcb2a10SAndre Fischer 
NotifyItemUpdate(sal_uInt16 nSID,SfxItemState eState,const SfxPoolItem * pState,const bool bIsEnabled)3338dcb2a10SAndre Fischer void GraphicPropertyPanel::NotifyItemUpdate(
3348dcb2a10SAndre Fischer     sal_uInt16 nSID,
3358dcb2a10SAndre Fischer     SfxItemState eState,
33645da7d5eSAndre Fischer     const SfxPoolItem* pState,
33745da7d5eSAndre Fischer     const bool bIsEnabled)
3388dcb2a10SAndre Fischer {
33945da7d5eSAndre Fischer     (void)bIsEnabled;
34045da7d5eSAndre Fischer 
3418dcb2a10SAndre Fischer     switch( nSID )
3428dcb2a10SAndre Fischer     {
3438dcb2a10SAndre Fischer         case SID_ATTR_GRAF_LUMINANCE:
344d74d90d6SArmin Le Grand         {
3458dcb2a10SAndre Fischer             if(eState >= SFX_ITEM_AVAILABLE)
3468dcb2a10SAndre Fischer             {
3478dcb2a10SAndre Fischer                 mpMtrBrightness->Enable();
3488dcb2a10SAndre Fischer                 const SfxInt16Item* pItem = dynamic_cast< const SfxInt16Item* >(pState);
3498dcb2a10SAndre Fischer 
3508dcb2a10SAndre Fischer                 if(pItem)
3518dcb2a10SAndre Fischer                 {
352d74d90d6SArmin Le Grand                     const sal_Int64 nBright = pItem->GetValue();
3538dcb2a10SAndre Fischer                     mpMtrBrightness->SetValue(nBright);
3548dcb2a10SAndre Fischer                 }
3558dcb2a10SAndre Fischer             }
356d74d90d6SArmin Le Grand             else if(SFX_ITEM_DISABLED == eState)
357d74d90d6SArmin Le Grand             {
3588dcb2a10SAndre Fischer                 mpMtrBrightness->Disable();
359d74d90d6SArmin Le Grand             }
3608dcb2a10SAndre Fischer             else
3618dcb2a10SAndre Fischer             {
3628dcb2a10SAndre Fischer                 mpMtrBrightness->Enable();
3638dcb2a10SAndre Fischer                 mpMtrBrightness->SetText(String());
3648dcb2a10SAndre Fischer             }
3658dcb2a10SAndre Fischer             break;
366d74d90d6SArmin Le Grand         }
3678dcb2a10SAndre Fischer         case SID_ATTR_GRAF_CONTRAST:
368d74d90d6SArmin Le Grand         {
3698dcb2a10SAndre Fischer             if(eState >= SFX_ITEM_AVAILABLE)
3708dcb2a10SAndre Fischer             {
3718dcb2a10SAndre Fischer                 mpMtrContrast->Enable();
3728dcb2a10SAndre Fischer                 const SfxInt16Item* pItem = dynamic_cast< const SfxInt16Item* >(pState);
3738dcb2a10SAndre Fischer 
3748dcb2a10SAndre Fischer                 if(pItem)
3758dcb2a10SAndre Fischer                 {
376d74d90d6SArmin Le Grand                     const sal_Int64 nContrast = pItem->GetValue();
3778dcb2a10SAndre Fischer                     mpMtrContrast->SetValue(nContrast);
3788dcb2a10SAndre Fischer                 }
3798dcb2a10SAndre Fischer             }
380d74d90d6SArmin Le Grand             else if(SFX_ITEM_DISABLED == eState)
381d74d90d6SArmin Le Grand             {
3828dcb2a10SAndre Fischer                 mpMtrContrast->Disable();
383d74d90d6SArmin Le Grand             }
3848dcb2a10SAndre Fischer             else
3858dcb2a10SAndre Fischer             {
3868dcb2a10SAndre Fischer                 mpMtrContrast->Enable();
3878dcb2a10SAndre Fischer                 mpMtrContrast->SetText(String());
3888dcb2a10SAndre Fischer             }
3898dcb2a10SAndre Fischer             break;
390d74d90d6SArmin Le Grand         }
3918dcb2a10SAndre Fischer         case SID_ATTR_GRAF_TRANSPARENCE:
392d74d90d6SArmin Le Grand         {
3938dcb2a10SAndre Fischer             if(eState >= SFX_ITEM_AVAILABLE)
3948dcb2a10SAndre Fischer             {
3958dcb2a10SAndre Fischer                 mpMtrTrans->Enable();
3968dcb2a10SAndre Fischer                 const SfxUInt16Item* pItem = dynamic_cast< const SfxUInt16Item* >(pState);
3978dcb2a10SAndre Fischer 
3988dcb2a10SAndre Fischer                 if(pItem)
3998dcb2a10SAndre Fischer                 {
400d74d90d6SArmin Le Grand                     const sal_Int64 nTrans = pItem->GetValue();
4018dcb2a10SAndre Fischer                     mpMtrTrans->SetValue(nTrans);
4028dcb2a10SAndre Fischer                 }
4038dcb2a10SAndre Fischer             }
404d74d90d6SArmin Le Grand             else if(SFX_ITEM_DISABLED == eState)
405d74d90d6SArmin Le Grand             {
4068dcb2a10SAndre Fischer                 mpMtrTrans->Disable();
407d74d90d6SArmin Le Grand             }
4088dcb2a10SAndre Fischer             else
4098dcb2a10SAndre Fischer             {
4108dcb2a10SAndre Fischer                 mpMtrTrans->Enable();
4118dcb2a10SAndre Fischer                 mpMtrTrans->SetText(String());
4128dcb2a10SAndre Fischer             }
4138dcb2a10SAndre Fischer             break;
414d74d90d6SArmin Le Grand         }
4158dcb2a10SAndre Fischer         case SID_ATTR_GRAF_MODE:
416d74d90d6SArmin Le Grand         {
4178dcb2a10SAndre Fischer             if(eState >= SFX_ITEM_AVAILABLE)
4188dcb2a10SAndre Fischer             {
4198dcb2a10SAndre Fischer                 mpLBColorMode->Enable();
4208dcb2a10SAndre Fischer                 const SfxUInt16Item* pItem = dynamic_cast< const SfxUInt16Item* >(pState);
4218dcb2a10SAndre Fischer 
4228dcb2a10SAndre Fischer                 if(pItem)
4238dcb2a10SAndre Fischer                 {
424d74d90d6SArmin Le Grand                     const sal_Int64 nTrans = pItem->GetValue();
4258dcb2a10SAndre Fischer                     mpLBColorMode->SelectEntryPos(nTrans);
4268dcb2a10SAndre Fischer                 }
4278dcb2a10SAndre Fischer             }
428d74d90d6SArmin Le Grand             else if(SFX_ITEM_DISABLED == eState)
429d74d90d6SArmin Le Grand             {
4308dcb2a10SAndre Fischer                 mpLBColorMode->Disable();
431d74d90d6SArmin Le Grand             }
4328dcb2a10SAndre Fischer             else
4338dcb2a10SAndre Fischer             {
4348dcb2a10SAndre Fischer                 mpLBColorMode->Enable();
4358dcb2a10SAndre Fischer                 mpLBColorMode->SetNoSelection();
4368dcb2a10SAndre Fischer             }
4378dcb2a10SAndre Fischer             break;
438d74d90d6SArmin Le Grand         }
4398dcb2a10SAndre Fischer         case SID_ATTR_GRAF_RED:
440d74d90d6SArmin Le Grand         {
4418dcb2a10SAndre Fischer             if(eState >= SFX_ITEM_AVAILABLE)
4428dcb2a10SAndre Fischer             {
4438dcb2a10SAndre Fischer                 mpMtrRed->Enable();
4448dcb2a10SAndre Fischer                 const SfxInt16Item* pItem = dynamic_cast< const SfxInt16Item* >(pState);
4458dcb2a10SAndre Fischer 
4468dcb2a10SAndre Fischer                 if(pItem)
4478dcb2a10SAndre Fischer                 {
448d74d90d6SArmin Le Grand                     const sal_Int64 nRed = pItem->GetValue();
4498dcb2a10SAndre Fischer                     mpMtrRed->SetValue( nRed );
4508dcb2a10SAndre Fischer                 }
4518dcb2a10SAndre Fischer             }
452d74d90d6SArmin Le Grand             else if(SFX_ITEM_DISABLED == eState)
453d74d90d6SArmin Le Grand             {
4548dcb2a10SAndre Fischer                 mpMtrRed->Disable();
455d74d90d6SArmin Le Grand             }
4568dcb2a10SAndre Fischer             else
4578dcb2a10SAndre Fischer             {
4588dcb2a10SAndre Fischer                 mpMtrRed->Enable();
4598dcb2a10SAndre Fischer                 mpMtrRed->SetText(String());
4608dcb2a10SAndre Fischer             }
4618dcb2a10SAndre Fischer             break;
462d74d90d6SArmin Le Grand         }
4638dcb2a10SAndre Fischer         case SID_ATTR_GRAF_GREEN:
464d74d90d6SArmin Le Grand         {
4658dcb2a10SAndre Fischer             if(eState >= SFX_ITEM_AVAILABLE)
4668dcb2a10SAndre Fischer             {
4678dcb2a10SAndre Fischer                 mpMtrGreen->Enable();
4688dcb2a10SAndre Fischer                 const SfxInt16Item* pItem = dynamic_cast< const SfxInt16Item* >(pState);
4698dcb2a10SAndre Fischer 
4708dcb2a10SAndre Fischer                 if(pItem)
4718dcb2a10SAndre Fischer                 {
472d74d90d6SArmin Le Grand                     const sal_Int64 nGreen = pItem->GetValue();
4738dcb2a10SAndre Fischer                     mpMtrGreen->SetValue( nGreen );
4748dcb2a10SAndre Fischer                 }
4758dcb2a10SAndre Fischer             }
476d74d90d6SArmin Le Grand             else if(SFX_ITEM_DISABLED == eState)
477d74d90d6SArmin Le Grand             {
4788dcb2a10SAndre Fischer                 mpMtrGreen->Disable();
479d74d90d6SArmin Le Grand             }
4808dcb2a10SAndre Fischer             else
4818dcb2a10SAndre Fischer             {
4828dcb2a10SAndre Fischer                 mpMtrGreen->Enable();
4838dcb2a10SAndre Fischer                 mpMtrGreen->SetText(String());
4848dcb2a10SAndre Fischer             }
4858dcb2a10SAndre Fischer             break;
486d74d90d6SArmin Le Grand         }
4878dcb2a10SAndre Fischer         case SID_ATTR_GRAF_BLUE:
488d74d90d6SArmin Le Grand         {
4898dcb2a10SAndre Fischer             if(eState >= SFX_ITEM_AVAILABLE)
4908dcb2a10SAndre Fischer             {
4918dcb2a10SAndre Fischer                 mpMtrBlue->Enable();
4928dcb2a10SAndre Fischer                 const SfxInt16Item* pItem = dynamic_cast< const SfxInt16Item* >(pState);
4938dcb2a10SAndre Fischer 
4948dcb2a10SAndre Fischer                 if(pItem)
4958dcb2a10SAndre Fischer                 {
496d74d90d6SArmin Le Grand                     const sal_Int64 nBlue = pItem->GetValue();
4978dcb2a10SAndre Fischer                     mpMtrBlue->SetValue( nBlue );
4988dcb2a10SAndre Fischer                 }
4998dcb2a10SAndre Fischer             }
500d74d90d6SArmin Le Grand             else if(SFX_ITEM_DISABLED == eState)
501d74d90d6SArmin Le Grand             {
5028dcb2a10SAndre Fischer                 mpMtrBlue->Disable();
503d74d90d6SArmin Le Grand             }
5048dcb2a10SAndre Fischer             else
5058dcb2a10SAndre Fischer             {
5068dcb2a10SAndre Fischer                 mpMtrBlue->Enable();
5078dcb2a10SAndre Fischer                 mpMtrBlue->SetText(String());
5088dcb2a10SAndre Fischer             }
5098dcb2a10SAndre Fischer             break;
510d74d90d6SArmin Le Grand         }
5118dcb2a10SAndre Fischer         case SID_ATTR_GRAF_GAMMA:
512d74d90d6SArmin Le Grand         {
5138dcb2a10SAndre Fischer             if(eState >= SFX_ITEM_AVAILABLE)
5148dcb2a10SAndre Fischer             {
5158dcb2a10SAndre Fischer                 mpMtrGamma->Enable();
5168dcb2a10SAndre Fischer                 const SfxUInt32Item* pItem = dynamic_cast< const SfxUInt32Item* >(pState);
5178dcb2a10SAndre Fischer 
5188dcb2a10SAndre Fischer                 if(pItem)
5198dcb2a10SAndre Fischer                 {
520d74d90d6SArmin Le Grand                     const sal_Int64 nGamma = pItem->GetValue();
5218dcb2a10SAndre Fischer                     mpMtrGamma->SetValue( nGamma );
5228dcb2a10SAndre Fischer                 }
5238dcb2a10SAndre Fischer             }
524d74d90d6SArmin Le Grand             else if(SFX_ITEM_DISABLED == eState)
525d74d90d6SArmin Le Grand             {
5268dcb2a10SAndre Fischer                 mpMtrGamma->Disable();
527d74d90d6SArmin Le Grand             }
5288dcb2a10SAndre Fischer             else
5298dcb2a10SAndre Fischer             {
5308dcb2a10SAndre Fischer                 mpMtrGamma->Enable();
5318dcb2a10SAndre Fischer                 mpMtrGamma->SetText(String());
5328dcb2a10SAndre Fischer             }
5338dcb2a10SAndre Fischer             break;
5348dcb2a10SAndre Fischer         }
5358dcb2a10SAndre Fischer     }
536d74d90d6SArmin Le Grand }
5378dcb2a10SAndre Fischer 
53845da7d5eSAndre Fischer 
53945da7d5eSAndre Fischer 
54045da7d5eSAndre Fischer 
GetBindings()5418dcb2a10SAndre Fischer SfxBindings* GraphicPropertyPanel::GetBindings()
5428dcb2a10SAndre Fischer {
5438dcb2a10SAndre Fischer     return mpBindings;
5448dcb2a10SAndre Fischer }
5458dcb2a10SAndre Fischer 
5466a606da0SAndre Fischer 
5476a606da0SAndre Fischer 
5486a606da0SAndre Fischer 
Resize(void)5496a606da0SAndre Fischer void GraphicPropertyPanel::Resize (void)
5506a606da0SAndre Fischer {
5516a606da0SAndre Fischer     maLayouter.Layout();
5526a606da0SAndre Fischer }
5536a606da0SAndre Fischer 
5546a606da0SAndre Fischer 
5558dcb2a10SAndre Fischer 
5568dcb2a10SAndre Fischer }} // end of namespace ::svx::sidebar
557