xref: /AOO41X/main/svx/source/sidebar/graphic/GraphicPropertyPanel.cxx (revision d3e0dd8eb215533c15e891ee35bd141abe9397ee)
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 
22d29c2fc2SAndre Fischer #include <sfx2/sidebar/ResourceDefinitions.hrc>
238dcb2a10SAndre Fischer #include <sfx2/sidebar/Theme.hxx>
248dcb2a10SAndre Fischer #include <sfx2/sidebar/ControlFactory.hxx>
25*6a606da0SAndre Fischer #include <sfx2/sidebar/Layouter.hxx>
268dcb2a10SAndre Fischer #include <GraphicPropertyPanel.hxx>
278dcb2a10SAndre Fischer #include <GraphicPropertyPanel.hrc>
288dcb2a10SAndre Fischer #include <svx/dialogs.hrc>
298dcb2a10SAndre Fischer #include <svx/dialmgr.hxx>
308dcb2a10SAndre Fischer #include <vcl/field.hxx>
318dcb2a10SAndre Fischer #include <vcl/lstbox.hxx>
328dcb2a10SAndre Fischer #include <svl/intitem.hxx>
338dcb2a10SAndre Fischer #include <sfx2/bindings.hxx>
348dcb2a10SAndre Fischer #include <sfx2/dispatch.hxx>
3587ab04d0SAndre Fischer #include "svx/dialogs.hrc"
368dcb2a10SAndre Fischer 
378dcb2a10SAndre Fischer using namespace css;
388dcb2a10SAndre Fischer using namespace cssu;
39*6a606da0SAndre Fischer using ::sfx2::sidebar::Layouter;
408dcb2a10SAndre Fischer using ::sfx2::sidebar::Theme;
418dcb2a10SAndre Fischer 
428dcb2a10SAndre Fischer #define A2S(pString) (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(pString)))
438dcb2a10SAndre Fischer 
448dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
45*6a606da0SAndre Fischer 
468dcb2a10SAndre Fischer 
478dcb2a10SAndre Fischer namespace svx { namespace sidebar {
488dcb2a10SAndre Fischer 
498dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
508dcb2a10SAndre Fischer 
GraphicPropertyPanel(Window * pParent,const cssu::Reference<css::frame::XFrame> & rxFrame,SfxBindings * pBindings)518dcb2a10SAndre Fischer GraphicPropertyPanel::GraphicPropertyPanel(
528dcb2a10SAndre Fischer     Window* pParent,
538dcb2a10SAndre Fischer     const cssu::Reference<css::frame::XFrame>& rxFrame,
548dcb2a10SAndre Fischer     SfxBindings* pBindings)
558dcb2a10SAndre Fischer :   Control(
568dcb2a10SAndre Fischer         pParent,
578dcb2a10SAndre Fischer         SVX_RES(RID_SIDEBAR_GRAPHIC_PANEL)),
588dcb2a10SAndre Fischer     mpFtBrightness(new FixedText(this, SVX_RES(FT_BRIGHTNESS))),
598dcb2a10SAndre Fischer     mpMtrBrightness(new MetricField(this, SVX_RES(MTR_BRIGHTNESS))),
608dcb2a10SAndre Fischer     mpFtContrast(new FixedText(this, SVX_RES(FT_CONTRAST))),
618dcb2a10SAndre Fischer     mpMtrContrast(new MetricField(this, SVX_RES(MTR_CONTRAST))),
628dcb2a10SAndre Fischer     mpFtColorMode(new FixedText(this, SVX_RES(FT_COLOR_MODE))),
638dcb2a10SAndre Fischer     mpLBColorMode(new ListBox(this, SVX_RES(LB_COLOR_MODE))),
648dcb2a10SAndre Fischer     mpFtTrans(new FixedText(this, SVX_RES(FT_TRANSPARENT))),
658dcb2a10SAndre Fischer     mpMtrTrans(new MetricField(this, SVX_RES(MTR_TRANSPARENT))),
668dcb2a10SAndre Fischer     mpMtrRed(new MetricField(this, SVX_RES(MF_RED))),
678dcb2a10SAndre Fischer     mpMtrGreen(new MetricField(this, SVX_RES(MF_GREEN))),
688dcb2a10SAndre Fischer     mpMtrBlue(new MetricField(this, SVX_RES(MF_BLUE))),
698dcb2a10SAndre Fischer     mpMtrGamma(new MetricField(this, SVX_RES(MF_GAMMA))),
708dcb2a10SAndre Fischer     maBrightControl(SID_ATTR_GRAF_LUMINANCE, *pBindings, *this),
718dcb2a10SAndre Fischer     maContrastControl(SID_ATTR_GRAF_CONTRAST, *pBindings, *this),
728dcb2a10SAndre Fischer     maTransparenceControl(SID_ATTR_GRAF_TRANSPARENCE, *pBindings, *this),
738dcb2a10SAndre Fischer     maRedControl(SID_ATTR_GRAF_RED, *pBindings, *this),
748dcb2a10SAndre Fischer     maGreenControl(SID_ATTR_GRAF_GREEN, *pBindings, *this),
758dcb2a10SAndre Fischer     maBlueControl(SID_ATTR_GRAF_BLUE, *pBindings, *this),
768dcb2a10SAndre Fischer     maGammaControl(SID_ATTR_GRAF_GAMMA, *pBindings, *this),
778dcb2a10SAndre Fischer     maModeControl(SID_ATTR_GRAF_MODE, *pBindings, *this),
788dcb2a10SAndre Fischer     maImgRed(this, SVX_RES(IMG_RED)),
798dcb2a10SAndre Fischer     maImgGreen(this, SVX_RES(IMG_GREEN)),
808dcb2a10SAndre Fischer     maImgBlue(this, SVX_RES(IMG_BLUE)),
818dcb2a10SAndre Fischer     maImgGamma(this, SVX_RES(IMG_GAMMA)),
828dcb2a10SAndre Fischer     mxFrame(rxFrame),
83*6a606da0SAndre Fischer     mpBindings(pBindings),
84*6a606da0SAndre Fischer     maLayouter(*this)
858dcb2a10SAndre Fischer {
868dcb2a10SAndre Fischer     Initialize();
878dcb2a10SAndre Fischer     FreeResource();
88*6a606da0SAndre Fischer 
89*6a606da0SAndre Fischer     // Setup the grid layouter.
90*6a606da0SAndre Fischer     maLayouter.GetCell(0,0).SetControl(*mpFtBrightness).SetGridWidth(2);
91*6a606da0SAndre Fischer     maLayouter.GetCell(1,0).SetControl(*mpMtrBrightness).SetGridWidth(2);
92*6a606da0SAndre Fischer 
93*6a606da0SAndre Fischer     maLayouter.GetCell(0,3).SetControl(*mpFtContrast).SetGridWidth(2);
94*6a606da0SAndre Fischer     maLayouter.GetCell(1,3).SetControl(*mpMtrContrast).SetGridWidth(2);
95*6a606da0SAndre Fischer 
96*6a606da0SAndre Fischer     maLayouter.GetCell(2,0).SetControl(*mpFtColorMode).SetGridWidth(2);
97*6a606da0SAndre Fischer     maLayouter.GetCell(3,0).SetControl(*mpLBColorMode).SetGridWidth(2);
98*6a606da0SAndre Fischer 
99*6a606da0SAndre Fischer     maLayouter.GetCell(2,3).SetControl(*mpFtTrans).SetGridWidth(2);
100*6a606da0SAndre Fischer     maLayouter.GetCell(3,3).SetControl(*mpMtrTrans).SetGridWidth(2);
101*6a606da0SAndre Fischer 
102*6a606da0SAndre Fischer     maLayouter.GetCell(4,0).SetControl(maImgRed).SetFixedWidth();
103*6a606da0SAndre Fischer     maLayouter.GetCell(4,1).SetControl(*mpMtrRed);
104*6a606da0SAndre Fischer 
105*6a606da0SAndre Fischer     maLayouter.GetCell(5,0).SetControl(maImgBlue).SetFixedWidth();
106*6a606da0SAndre Fischer     maLayouter.GetCell(5,1).SetControl(*mpMtrBlue);
107*6a606da0SAndre Fischer 
108*6a606da0SAndre Fischer     maLayouter.GetCell(4,3).SetControl(maImgGreen).SetFixedWidth();
109*6a606da0SAndre Fischer     maLayouter.GetCell(4,4).SetControl(*mpMtrGreen);
110*6a606da0SAndre Fischer     maLayouter.GetCell(5,3).SetControl(maImgGamma).SetFixedWidth();
111*6a606da0SAndre Fischer     maLayouter.GetCell(5,4).SetControl(*mpMtrGamma);
112*6a606da0SAndre Fischer 
113*6a606da0SAndre Fischer     maLayouter.GetColumn(0)
114*6a606da0SAndre Fischer         .SetWeight(0)
115*6a606da0SAndre Fischer         .SetLeftPadding(Layouter::MapWidth(*this,SECTIONPAGE_MARGIN_HORIZONTAL));
116*6a606da0SAndre Fischer     maLayouter.GetColumn(1)
117*6a606da0SAndre Fischer         .SetWeight(1)
118*6a606da0SAndre Fischer         .SetMinimumWidth(Layouter::MapWidth(*this, MBOX_WIDTH - 10));
119*6a606da0SAndre Fischer     maLayouter.GetColumn(2)
120*6a606da0SAndre Fischer         .SetWeight(0)
121*6a606da0SAndre Fischer         .SetMinimumWidth(Layouter::MapWidth(*this, CONTROL_SPACING_HORIZONTAL));
122*6a606da0SAndre Fischer     maLayouter.GetColumn(3)
123*6a606da0SAndre Fischer         .SetWeight(0);
124*6a606da0SAndre Fischer     maLayouter.GetColumn(4)
125*6a606da0SAndre Fischer         .SetWeight(1)
126*6a606da0SAndre Fischer         .SetMinimumWidth(Layouter::MapWidth(*this, MBOX_WIDTH - 10))
127*6a606da0SAndre Fischer         .SetRightPadding(Layouter::MapWidth(*this,SECTIONPAGE_MARGIN_HORIZONTAL));
128*6a606da0SAndre Fischer 
129*6a606da0SAndre Fischer     // Make controls that display text handle short widths more
130*6a606da0SAndre Fischer     // graceful.
131*6a606da0SAndre Fischer     Layouter::PrepareForLayouting(*mpFtBrightness);
132*6a606da0SAndre Fischer     Layouter::PrepareForLayouting(*mpFtContrast);
133*6a606da0SAndre Fischer     Layouter::PrepareForLayouting(*mpFtColorMode);
134*6a606da0SAndre Fischer     Layouter::PrepareForLayouting(*mpFtTrans);
1358dcb2a10SAndre Fischer }
1368dcb2a10SAndre Fischer 
1378dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
1388dcb2a10SAndre Fischer 
~GraphicPropertyPanel()1398dcb2a10SAndre Fischer GraphicPropertyPanel::~GraphicPropertyPanel()
1408dcb2a10SAndre Fischer {
1418dcb2a10SAndre Fischer }
1428dcb2a10SAndre Fischer 
1438dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
1448dcb2a10SAndre Fischer 
Initialize()1458dcb2a10SAndre Fischer void GraphicPropertyPanel::Initialize()
1468dcb2a10SAndre Fischer {
14737fee4fdSAndre Fischer     mpFtBrightness->SetBackground(Wallpaper());
14837fee4fdSAndre Fischer     mpFtContrast->SetBackground(Wallpaper());
14937fee4fdSAndre Fischer     mpFtColorMode->SetBackground(Wallpaper());
15037fee4fdSAndre Fischer     mpFtTrans->SetBackground(Wallpaper());
15137fee4fdSAndre Fischer 
1528dcb2a10SAndre Fischer     mpMtrBrightness->SetModifyHdl( LINK( this, GraphicPropertyPanel, ModifyBrightnessHdl ) );
15387ab04d0SAndre Fischer     mpMtrBrightness->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Brightness")));
1548dcb2a10SAndre Fischer     mpMtrContrast->SetModifyHdl( LINK( this, GraphicPropertyPanel, ModifyContrastHdl ) );
15587ab04d0SAndre Fischer     mpMtrContrast->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Contrast")));
1568dcb2a10SAndre Fischer     mpMtrTrans->SetModifyHdl( LINK( this, GraphicPropertyPanel, ModifyTransHdl ) );
15787ab04d0SAndre Fischer     mpMtrTrans->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Transparency")));
1588dcb2a10SAndre Fischer 
15987ab04d0SAndre Fischer     mpLBColorMode->InsertEntry(String(SVX_RES(RID_SVXSTR_GRAFMODE_STANDARD)));
16087ab04d0SAndre Fischer     mpLBColorMode->InsertEntry(String(SVX_RES(RID_SVXSTR_GRAFMODE_GREYS)));
16187ab04d0SAndre Fischer     mpLBColorMode->InsertEntry(String(SVX_RES(RID_SVXSTR_GRAFMODE_MONO)));
16287ab04d0SAndre Fischer     mpLBColorMode->InsertEntry(String(SVX_RES(RID_SVXSTR_GRAFMODE_WATERMARK)));
1638dcb2a10SAndre Fischer     mpLBColorMode->SetSelectHdl( LINK( this, GraphicPropertyPanel, ClickColorModeHdl ));
16487ab04d0SAndre Fischer     mpLBColorMode->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Color mode")));
1658dcb2a10SAndre Fischer 
1668dcb2a10SAndre Fischer     mpMtrRed->SetModifyHdl( LINK( this, GraphicPropertyPanel, RedHdl ) );
1678dcb2a10SAndre Fischer     mpMtrGreen->SetModifyHdl( LINK( this, GraphicPropertyPanel, GreenHdl ) );
1688dcb2a10SAndre Fischer     mpMtrBlue->SetModifyHdl( LINK( this, GraphicPropertyPanel, BlueHdl ) );
1698dcb2a10SAndre Fischer     mpMtrGamma->SetModifyHdl( LINK( this, GraphicPropertyPanel, GammaHdl ) );
17087ab04d0SAndre Fischer     mpMtrRed->SetAccessibleName(mpMtrRed->GetQuickHelpText());
17187ab04d0SAndre Fischer     mpMtrGreen->SetAccessibleName(mpMtrGreen->GetQuickHelpText());
17287ab04d0SAndre Fischer     mpMtrBlue->SetAccessibleName(mpMtrBlue->GetQuickHelpText());
17387ab04d0SAndre Fischer     mpMtrGamma->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Gamma value")));
1748dcb2a10SAndre Fischer 
1758dcb2a10SAndre Fischer     mpMtrRed->SetAccessibleRelationLabeledBy(mpMtrRed.get());
1768dcb2a10SAndre Fischer     mpMtrGreen->SetAccessibleRelationLabeledBy(mpMtrGreen.get());
1778dcb2a10SAndre Fischer     mpMtrBlue->SetAccessibleRelationLabeledBy(mpMtrBlue.get());
1788dcb2a10SAndre Fischer     mpMtrGamma->SetAccessibleRelationLabeledBy(mpMtrGamma.get());
17987ab04d0SAndre Fischer     mpMtrBrightness->SetAccessibleRelationLabeledBy(mpFtBrightness.get());
18087ab04d0SAndre Fischer     mpMtrContrast->SetAccessibleRelationLabeledBy(mpFtContrast.get());
18187ab04d0SAndre Fischer     mpMtrTrans->SetAccessibleRelationLabeledBy(mpFtTrans.get());
18287ab04d0SAndre Fischer     mpLBColorMode->SetAccessibleRelationLabeledBy(mpFtColorMode.get());
18387ab04d0SAndre Fischer 
18487ab04d0SAndre Fischer     // Fix left position of some controls that may be wrong due to
18587ab04d0SAndre Fischer     // rounding errors.
18687ab04d0SAndre Fischer     const sal_Int32 nRight0 (mpLBColorMode->GetPosPixel().X() + mpLBColorMode->GetSizePixel().Width());
18787ab04d0SAndre Fischer     const sal_Int32 nRight1 (mpMtrTrans->GetPosPixel().X() + mpMtrTrans->GetSizePixel().Width());
18887ab04d0SAndre Fischer     mpMtrRed->SetPosPixel(Point(
18987ab04d0SAndre Fischer             nRight0 - mpMtrRed->GetSizePixel().Width(),
19087ab04d0SAndre Fischer             mpMtrRed->GetPosPixel().Y()));
19187ab04d0SAndre Fischer     mpMtrBlue->SetPosPixel(Point(
19287ab04d0SAndre Fischer             nRight0 - mpMtrBlue->GetSizePixel().Width(),
19387ab04d0SAndre Fischer             mpMtrBlue->GetPosPixel().Y()));
19487ab04d0SAndre Fischer     mpMtrGreen->SetPosPixel(Point(
19587ab04d0SAndre Fischer             nRight1 - mpMtrGreen->GetSizePixel().Width(),
19687ab04d0SAndre Fischer             mpMtrGreen->GetPosPixel().Y()));
19787ab04d0SAndre Fischer     mpMtrGamma->SetPosPixel(Point(
19887ab04d0SAndre Fischer             nRight1 - mpMtrGamma->GetSizePixel().Width(),
19987ab04d0SAndre Fischer             mpMtrGamma->GetPosPixel().Y()));
2008dcb2a10SAndre Fischer }
2018dcb2a10SAndre Fischer 
20287ab04d0SAndre Fischer 
20387ab04d0SAndre Fischer 
20487ab04d0SAndre Fischer 
2058dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2068dcb2a10SAndre Fischer 
IMPL_LINK(GraphicPropertyPanel,ModifyBrightnessHdl,void *,EMPTYARG)2078dcb2a10SAndre Fischer IMPL_LINK( GraphicPropertyPanel, ModifyBrightnessHdl, void *, EMPTYARG )
2088dcb2a10SAndre Fischer {
209d74d90d6SArmin Le Grand     const sal_Int16 nBright = mpMtrBrightness->GetValue();
210d74d90d6SArmin Le Grand     const SfxInt16Item aBrightItem( SID_ATTR_GRAF_LUMINANCE, nBright );
211d74d90d6SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_LUMINANCE, SFX_CALLMODE_RECORD, &aBrightItem, 0L);
2128dcb2a10SAndre Fischer     return 0L;
2138dcb2a10SAndre Fischer }
2148dcb2a10SAndre Fischer 
2158dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2168dcb2a10SAndre Fischer 
IMPL_LINK(GraphicPropertyPanel,ModifyContrastHdl,void *,EMPTYARG)2178dcb2a10SAndre Fischer IMPL_LINK( GraphicPropertyPanel, ModifyContrastHdl, void *, EMPTYARG )
2188dcb2a10SAndre Fischer {
219d74d90d6SArmin Le Grand     const sal_Int16 nContrast = mpMtrContrast->GetValue();
220d74d90d6SArmin Le Grand     const SfxInt16Item aContrastItem( SID_ATTR_GRAF_CONTRAST, nContrast );
221d74d90d6SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_CONTRAST, SFX_CALLMODE_RECORD, &aContrastItem, 0L);
2228dcb2a10SAndre Fischer     return 0L;
2238dcb2a10SAndre Fischer }
2248dcb2a10SAndre Fischer 
2258dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2268dcb2a10SAndre Fischer 
IMPL_LINK(GraphicPropertyPanel,ModifyTransHdl,void *,EMPTYARG)2278dcb2a10SAndre Fischer IMPL_LINK( GraphicPropertyPanel, ModifyTransHdl, void *, EMPTYARG )
2288dcb2a10SAndre Fischer {
229d74d90d6SArmin Le Grand     const sal_Int16 nTrans = mpMtrTrans->GetValue();
230d74d90d6SArmin Le Grand     const SfxInt16Item aTransItem( SID_ATTR_GRAF_TRANSPARENCE, nTrans );
231d74d90d6SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_TRANSPARENCE, SFX_CALLMODE_RECORD, &aTransItem, 0L);
2328dcb2a10SAndre Fischer     return 0L;
2338dcb2a10SAndre Fischer }
2348dcb2a10SAndre Fischer 
2358dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2368dcb2a10SAndre Fischer 
237e89b8a96SPavel Janík IMPL_LINK( GraphicPropertyPanel, ClickColorModeHdl, ToolBox *, /* pBox */)
2388dcb2a10SAndre Fischer {
239d74d90d6SArmin Le Grand     const sal_Int16 nTrans = mpLBColorMode->GetSelectEntryPos();
240d74d90d6SArmin Le Grand     const SfxInt16Item aTransItem( SID_ATTR_GRAF_MODE, nTrans );
241d74d90d6SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_MODE, SFX_CALLMODE_RECORD, &aTransItem, 0L);
2428dcb2a10SAndre Fischer     return 0L;
2438dcb2a10SAndre Fischer }
2448dcb2a10SAndre Fischer 
2458dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2468dcb2a10SAndre Fischer 
IMPL_LINK(GraphicPropertyPanel,RedHdl,void *,EMPTYARG)2478dcb2a10SAndre Fischer IMPL_LINK( GraphicPropertyPanel, RedHdl, void*, EMPTYARG )
2488dcb2a10SAndre Fischer {
249d74d90d6SArmin Le Grand     const sal_Int16 nRed = mpMtrRed->GetValue();
250d74d90d6SArmin Le Grand     const SfxInt16Item aRedItem( SID_ATTR_GRAF_RED, nRed );
251d74d90d6SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_RED, SFX_CALLMODE_RECORD, &aRedItem, 0L);
2528dcb2a10SAndre Fischer     return 0L;
2538dcb2a10SAndre Fischer }
2548dcb2a10SAndre Fischer 
2558dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2568dcb2a10SAndre Fischer 
IMPL_LINK(GraphicPropertyPanel,GreenHdl,void *,EMPTYARG)2578dcb2a10SAndre Fischer IMPL_LINK( GraphicPropertyPanel, GreenHdl, void*, EMPTYARG )
2588dcb2a10SAndre Fischer {
259d74d90d6SArmin Le Grand     const sal_Int16 nGreen = mpMtrGreen->GetValue();
260d74d90d6SArmin Le Grand     const SfxInt16Item aGreenItem( SID_ATTR_GRAF_GREEN, nGreen );
261d74d90d6SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_GREEN, SFX_CALLMODE_RECORD, &aGreenItem, 0L);
2628dcb2a10SAndre Fischer     return 0L;
2638dcb2a10SAndre Fischer }
2648dcb2a10SAndre Fischer 
2658dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2668dcb2a10SAndre Fischer 
IMPL_LINK(GraphicPropertyPanel,BlueHdl,void *,EMPTYARG)2678dcb2a10SAndre Fischer IMPL_LINK(GraphicPropertyPanel, BlueHdl, void *, EMPTYARG)
2688dcb2a10SAndre Fischer {
269d74d90d6SArmin Le Grand     const sal_Int16 nBlue = mpMtrBlue->GetValue();
270d74d90d6SArmin Le Grand     const SfxInt16Item aBlueItem( SID_ATTR_GRAF_BLUE, nBlue );
271d74d90d6SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_BLUE, SFX_CALLMODE_RECORD, &aBlueItem, 0L);
2728dcb2a10SAndre Fischer     return 0L;
2738dcb2a10SAndre Fischer }
2748dcb2a10SAndre Fischer 
2758dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2768dcb2a10SAndre Fischer 
IMPL_LINK(GraphicPropertyPanel,GammaHdl,void *,EMPTYARG)2778dcb2a10SAndre Fischer IMPL_LINK(GraphicPropertyPanel, GammaHdl, void *, EMPTYARG)
2788dcb2a10SAndre Fischer {
279d74d90d6SArmin Le Grand     const sal_Int32 nGamma = mpMtrGamma->GetValue();
280d74d90d6SArmin Le Grand     const SfxInt32Item nGammaItem( SID_ATTR_GRAF_GAMMA, nGamma );
281d74d90d6SArmin Le Grand     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_GAMMA, SFX_CALLMODE_RECORD, &nGammaItem, 0L);
2828dcb2a10SAndre Fischer     return 0L;
2838dcb2a10SAndre Fischer }
2848dcb2a10SAndre Fischer 
2858dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
2868dcb2a10SAndre Fischer 
SetupIcons(void)2878dcb2a10SAndre Fischer void GraphicPropertyPanel::SetupIcons(void)
2888dcb2a10SAndre Fischer {
2898dcb2a10SAndre Fischer     if(Theme::GetBoolean(Theme::Bool_UseSymphonyIcons))
2908dcb2a10SAndre Fischer     {
2918dcb2a10SAndre Fischer         // todo
2928dcb2a10SAndre Fischer     }
2938dcb2a10SAndre Fischer     else
2948dcb2a10SAndre Fischer     {
2958dcb2a10SAndre Fischer         // todo
2968dcb2a10SAndre Fischer     }
2978dcb2a10SAndre Fischer }
2988dcb2a10SAndre Fischer 
2998dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
3008dcb2a10SAndre Fischer 
Create(Window * pParent,const cssu::Reference<css::frame::XFrame> & rxFrame,SfxBindings * pBindings)3018dcb2a10SAndre Fischer GraphicPropertyPanel* GraphicPropertyPanel::Create (
3028dcb2a10SAndre Fischer     Window* pParent,
3038dcb2a10SAndre Fischer     const cssu::Reference<css::frame::XFrame>& rxFrame,
3048dcb2a10SAndre Fischer     SfxBindings* pBindings)
3058dcb2a10SAndre Fischer {
3068dcb2a10SAndre Fischer     if (pParent == NULL)
3078dcb2a10SAndre Fischer         throw lang::IllegalArgumentException(A2S("no parent Window given to GraphicPropertyPanel::Create"), NULL, 0);
3088dcb2a10SAndre Fischer     if ( ! rxFrame.is())
3098dcb2a10SAndre Fischer         throw lang::IllegalArgumentException(A2S("no XFrame given to GraphicPropertyPanel::Create"), NULL, 1);
3108dcb2a10SAndre Fischer     if (pBindings == NULL)
3118dcb2a10SAndre Fischer         throw lang::IllegalArgumentException(A2S("no SfxBindings given to GraphicPropertyPanel::Create"), NULL, 2);
3128dcb2a10SAndre Fischer 
3138dcb2a10SAndre Fischer     return new GraphicPropertyPanel(
3148dcb2a10SAndre Fischer         pParent,
3158dcb2a10SAndre Fischer         rxFrame,
3168dcb2a10SAndre Fischer         pBindings);
3178dcb2a10SAndre Fischer }
3188dcb2a10SAndre Fischer 
3198dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
3208dcb2a10SAndre Fischer 
DataChanged(const DataChangedEvent & rEvent)3218dcb2a10SAndre Fischer void GraphicPropertyPanel::DataChanged(
3228dcb2a10SAndre Fischer     const DataChangedEvent& rEvent)
3238dcb2a10SAndre Fischer {
3248dcb2a10SAndre Fischer     (void)rEvent;
3258dcb2a10SAndre Fischer 
3268dcb2a10SAndre Fischer     SetupIcons();
3278dcb2a10SAndre Fischer }
3288dcb2a10SAndre Fischer 
3298dcb2a10SAndre Fischer //////////////////////////////////////////////////////////////////////////////
3308dcb2a10SAndre Fischer 
NotifyItemUpdate(sal_uInt16 nSID,SfxItemState eState,const SfxPoolItem * pState,const bool bIsEnabled)3318dcb2a10SAndre Fischer void GraphicPropertyPanel::NotifyItemUpdate(
3328dcb2a10SAndre Fischer     sal_uInt16 nSID,
3338dcb2a10SAndre Fischer     SfxItemState eState,
33445da7d5eSAndre Fischer     const SfxPoolItem* pState,
33545da7d5eSAndre Fischer     const bool bIsEnabled)
3368dcb2a10SAndre Fischer {
33745da7d5eSAndre Fischer     (void)bIsEnabled;
33845da7d5eSAndre Fischer 
3398dcb2a10SAndre Fischer     switch( nSID )
3408dcb2a10SAndre Fischer     {
3418dcb2a10SAndre Fischer         case SID_ATTR_GRAF_LUMINANCE:
342d74d90d6SArmin Le Grand         {
3438dcb2a10SAndre Fischer             if(eState >= SFX_ITEM_AVAILABLE)
3448dcb2a10SAndre Fischer             {
3458dcb2a10SAndre Fischer                 mpMtrBrightness->Enable();
3468dcb2a10SAndre Fischer                 const SfxInt16Item* pItem = dynamic_cast< const SfxInt16Item* >(pState);
3478dcb2a10SAndre Fischer 
3488dcb2a10SAndre Fischer                 if(pItem)
3498dcb2a10SAndre Fischer                 {
350d74d90d6SArmin Le Grand                     const sal_Int64 nBright = pItem->GetValue();
3518dcb2a10SAndre Fischer                     mpMtrBrightness->SetValue(nBright);
3528dcb2a10SAndre Fischer                 }
3538dcb2a10SAndre Fischer             }
354d74d90d6SArmin Le Grand             else if(SFX_ITEM_DISABLED == eState)
355d74d90d6SArmin Le Grand             {
3568dcb2a10SAndre Fischer                 mpMtrBrightness->Disable();
357d74d90d6SArmin Le Grand             }
3588dcb2a10SAndre Fischer             else
3598dcb2a10SAndre Fischer             {
3608dcb2a10SAndre Fischer                 mpMtrBrightness->Enable();
3618dcb2a10SAndre Fischer                 mpMtrBrightness->SetText(String());
3628dcb2a10SAndre Fischer             }
3638dcb2a10SAndre Fischer             break;
364d74d90d6SArmin Le Grand         }
3658dcb2a10SAndre Fischer         case SID_ATTR_GRAF_CONTRAST:
366d74d90d6SArmin Le Grand         {
3678dcb2a10SAndre Fischer             if(eState >= SFX_ITEM_AVAILABLE)
3688dcb2a10SAndre Fischer             {
3698dcb2a10SAndre Fischer                 mpMtrContrast->Enable();
3708dcb2a10SAndre Fischer                 const SfxInt16Item* pItem = dynamic_cast< const SfxInt16Item* >(pState);
3718dcb2a10SAndre Fischer 
3728dcb2a10SAndre Fischer                 if(pItem)
3738dcb2a10SAndre Fischer                 {
374d74d90d6SArmin Le Grand                     const sal_Int64 nContrast = pItem->GetValue();
3758dcb2a10SAndre Fischer                     mpMtrContrast->SetValue(nContrast);
3768dcb2a10SAndre Fischer                 }
3778dcb2a10SAndre Fischer             }
378d74d90d6SArmin Le Grand             else if(SFX_ITEM_DISABLED == eState)
379d74d90d6SArmin Le Grand             {
3808dcb2a10SAndre Fischer                 mpMtrContrast->Disable();
381d74d90d6SArmin Le Grand             }
3828dcb2a10SAndre Fischer             else
3838dcb2a10SAndre Fischer             {
3848dcb2a10SAndre Fischer                 mpMtrContrast->Enable();
3858dcb2a10SAndre Fischer                 mpMtrContrast->SetText(String());
3868dcb2a10SAndre Fischer             }
3878dcb2a10SAndre Fischer             break;
388d74d90d6SArmin Le Grand         }
3898dcb2a10SAndre Fischer         case SID_ATTR_GRAF_TRANSPARENCE:
390d74d90d6SArmin Le Grand         {
3918dcb2a10SAndre Fischer             if(eState >= SFX_ITEM_AVAILABLE)
3928dcb2a10SAndre Fischer             {
3938dcb2a10SAndre Fischer                 mpMtrTrans->Enable();
3948dcb2a10SAndre Fischer                 const SfxUInt16Item* pItem = dynamic_cast< const SfxUInt16Item* >(pState);
3958dcb2a10SAndre Fischer 
3968dcb2a10SAndre Fischer                 if(pItem)
3978dcb2a10SAndre Fischer                 {
398d74d90d6SArmin Le Grand                     const sal_Int64 nTrans = pItem->GetValue();
3998dcb2a10SAndre Fischer                     mpMtrTrans->SetValue(nTrans);
4008dcb2a10SAndre Fischer                 }
4018dcb2a10SAndre Fischer             }
402d74d90d6SArmin Le Grand             else if(SFX_ITEM_DISABLED == eState)
403d74d90d6SArmin Le Grand             {
4048dcb2a10SAndre Fischer                 mpMtrTrans->Disable();
405d74d90d6SArmin Le Grand             }
4068dcb2a10SAndre Fischer             else
4078dcb2a10SAndre Fischer             {
4088dcb2a10SAndre Fischer                 mpMtrTrans->Enable();
4098dcb2a10SAndre Fischer                 mpMtrTrans->SetText(String());
4108dcb2a10SAndre Fischer             }
4118dcb2a10SAndre Fischer             break;
412d74d90d6SArmin Le Grand         }
4138dcb2a10SAndre Fischer         case SID_ATTR_GRAF_MODE:
414d74d90d6SArmin Le Grand         {
4158dcb2a10SAndre Fischer             if(eState >= SFX_ITEM_AVAILABLE)
4168dcb2a10SAndre Fischer             {
4178dcb2a10SAndre Fischer                 mpLBColorMode->Enable();
4188dcb2a10SAndre Fischer                 const SfxUInt16Item* pItem = dynamic_cast< const SfxUInt16Item* >(pState);
4198dcb2a10SAndre Fischer 
4208dcb2a10SAndre Fischer                 if(pItem)
4218dcb2a10SAndre Fischer                 {
422d74d90d6SArmin Le Grand                     const sal_Int64 nTrans = pItem->GetValue();
4238dcb2a10SAndre Fischer                     mpLBColorMode->SelectEntryPos(nTrans);
4248dcb2a10SAndre Fischer                 }
4258dcb2a10SAndre Fischer             }
426d74d90d6SArmin Le Grand             else if(SFX_ITEM_DISABLED == eState)
427d74d90d6SArmin Le Grand             {
4288dcb2a10SAndre Fischer                 mpLBColorMode->Disable();
429d74d90d6SArmin Le Grand             }
4308dcb2a10SAndre Fischer             else
4318dcb2a10SAndre Fischer             {
4328dcb2a10SAndre Fischer                 mpLBColorMode->Enable();
4338dcb2a10SAndre Fischer                 mpLBColorMode->SetNoSelection();
4348dcb2a10SAndre Fischer             }
4358dcb2a10SAndre Fischer             break;
436d74d90d6SArmin Le Grand         }
4378dcb2a10SAndre Fischer         case SID_ATTR_GRAF_RED:
438d74d90d6SArmin Le Grand         {
4398dcb2a10SAndre Fischer             if(eState >= SFX_ITEM_AVAILABLE)
4408dcb2a10SAndre Fischer             {
4418dcb2a10SAndre Fischer                 mpMtrRed->Enable();
4428dcb2a10SAndre Fischer                 const SfxInt16Item* pItem = dynamic_cast< const SfxInt16Item* >(pState);
4438dcb2a10SAndre Fischer 
4448dcb2a10SAndre Fischer                 if(pItem)
4458dcb2a10SAndre Fischer                 {
446d74d90d6SArmin Le Grand                     const sal_Int64 nRed = pItem->GetValue();
4478dcb2a10SAndre Fischer                     mpMtrRed->SetValue( nRed );
4488dcb2a10SAndre Fischer                 }
4498dcb2a10SAndre Fischer             }
450d74d90d6SArmin Le Grand             else if(SFX_ITEM_DISABLED == eState)
451d74d90d6SArmin Le Grand             {
4528dcb2a10SAndre Fischer                 mpMtrRed->Disable();
453d74d90d6SArmin Le Grand             }
4548dcb2a10SAndre Fischer             else
4558dcb2a10SAndre Fischer             {
4568dcb2a10SAndre Fischer                 mpMtrRed->Enable();
4578dcb2a10SAndre Fischer                 mpMtrRed->SetText(String());
4588dcb2a10SAndre Fischer             }
4598dcb2a10SAndre Fischer             break;
460d74d90d6SArmin Le Grand         }
4618dcb2a10SAndre Fischer         case SID_ATTR_GRAF_GREEN:
462d74d90d6SArmin Le Grand         {
4638dcb2a10SAndre Fischer             if(eState >= SFX_ITEM_AVAILABLE)
4648dcb2a10SAndre Fischer             {
4658dcb2a10SAndre Fischer                 mpMtrGreen->Enable();
4668dcb2a10SAndre Fischer                 const SfxInt16Item* pItem = dynamic_cast< const SfxInt16Item* >(pState);
4678dcb2a10SAndre Fischer 
4688dcb2a10SAndre Fischer                 if(pItem)
4698dcb2a10SAndre Fischer                 {
470d74d90d6SArmin Le Grand                     const sal_Int64 nGreen = pItem->GetValue();
4718dcb2a10SAndre Fischer                     mpMtrGreen->SetValue( nGreen );
4728dcb2a10SAndre Fischer                 }
4738dcb2a10SAndre Fischer             }
474d74d90d6SArmin Le Grand             else if(SFX_ITEM_DISABLED == eState)
475d74d90d6SArmin Le Grand             {
4768dcb2a10SAndre Fischer                 mpMtrGreen->Disable();
477d74d90d6SArmin Le Grand             }
4788dcb2a10SAndre Fischer             else
4798dcb2a10SAndre Fischer             {
4808dcb2a10SAndre Fischer                 mpMtrGreen->Enable();
4818dcb2a10SAndre Fischer                 mpMtrGreen->SetText(String());
4828dcb2a10SAndre Fischer             }
4838dcb2a10SAndre Fischer             break;
484d74d90d6SArmin Le Grand         }
4858dcb2a10SAndre Fischer         case SID_ATTR_GRAF_BLUE:
486d74d90d6SArmin Le Grand         {
4878dcb2a10SAndre Fischer             if(eState >= SFX_ITEM_AVAILABLE)
4888dcb2a10SAndre Fischer             {
4898dcb2a10SAndre Fischer                 mpMtrBlue->Enable();
4908dcb2a10SAndre Fischer                 const SfxInt16Item* pItem = dynamic_cast< const SfxInt16Item* >(pState);
4918dcb2a10SAndre Fischer 
4928dcb2a10SAndre Fischer                 if(pItem)
4938dcb2a10SAndre Fischer                 {
494d74d90d6SArmin Le Grand                     const sal_Int64 nBlue = pItem->GetValue();
4958dcb2a10SAndre Fischer                     mpMtrBlue->SetValue( nBlue );
4968dcb2a10SAndre Fischer                 }
4978dcb2a10SAndre Fischer             }
498d74d90d6SArmin Le Grand             else if(SFX_ITEM_DISABLED == eState)
499d74d90d6SArmin Le Grand             {
5008dcb2a10SAndre Fischer                 mpMtrBlue->Disable();
501d74d90d6SArmin Le Grand             }
5028dcb2a10SAndre Fischer             else
5038dcb2a10SAndre Fischer             {
5048dcb2a10SAndre Fischer                 mpMtrBlue->Enable();
5058dcb2a10SAndre Fischer                 mpMtrBlue->SetText(String());
5068dcb2a10SAndre Fischer             }
5078dcb2a10SAndre Fischer             break;
508d74d90d6SArmin Le Grand         }
5098dcb2a10SAndre Fischer         case SID_ATTR_GRAF_GAMMA:
510d74d90d6SArmin Le Grand         {
5118dcb2a10SAndre Fischer             if(eState >= SFX_ITEM_AVAILABLE)
5128dcb2a10SAndre Fischer             {
5138dcb2a10SAndre Fischer                 mpMtrGamma->Enable();
5148dcb2a10SAndre Fischer                 const SfxUInt32Item* pItem = dynamic_cast< const SfxUInt32Item* >(pState);
5158dcb2a10SAndre Fischer 
5168dcb2a10SAndre Fischer                 if(pItem)
5178dcb2a10SAndre Fischer                 {
518d74d90d6SArmin Le Grand                     const sal_Int64 nGamma = pItem->GetValue();
5198dcb2a10SAndre Fischer                     mpMtrGamma->SetValue( nGamma );
5208dcb2a10SAndre Fischer                 }
5218dcb2a10SAndre Fischer             }
522d74d90d6SArmin Le Grand             else if(SFX_ITEM_DISABLED == eState)
523d74d90d6SArmin Le Grand             {
5248dcb2a10SAndre Fischer                 mpMtrGamma->Disable();
525d74d90d6SArmin Le Grand             }
5268dcb2a10SAndre Fischer             else
5278dcb2a10SAndre Fischer             {
5288dcb2a10SAndre Fischer                 mpMtrGamma->Enable();
5298dcb2a10SAndre Fischer                 mpMtrGamma->SetText(String());
5308dcb2a10SAndre Fischer             }
5318dcb2a10SAndre Fischer             break;
5328dcb2a10SAndre Fischer         }
5338dcb2a10SAndre Fischer     }
534d74d90d6SArmin Le Grand }
5358dcb2a10SAndre Fischer 
53645da7d5eSAndre Fischer 
53745da7d5eSAndre Fischer 
53845da7d5eSAndre Fischer 
GetBindings()5398dcb2a10SAndre Fischer SfxBindings* GraphicPropertyPanel::GetBindings()
5408dcb2a10SAndre Fischer {
5418dcb2a10SAndre Fischer     return mpBindings;
5428dcb2a10SAndre Fischer }
5438dcb2a10SAndre Fischer 
544*6a606da0SAndre Fischer 
545*6a606da0SAndre Fischer 
546*6a606da0SAndre Fischer 
Resize(void)547*6a606da0SAndre Fischer void GraphicPropertyPanel::Resize (void)
548*6a606da0SAndre Fischer {
549*6a606da0SAndre Fischer     maLayouter.Layout();
550*6a606da0SAndre Fischer }
551*6a606da0SAndre Fischer 
552*6a606da0SAndre Fischer 
5538dcb2a10SAndre Fischer 
5548dcb2a10SAndre Fischer }} // end of namespace ::svx::sidebar
555