1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #include <sfx2/sidebar/ResourceDefinitions.hrc>
25 #include <sfx2/sidebar/Theme.hxx>
26 #include <sfx2/sidebar/ControlFactory.hxx>
27 #include <sfx2/sidebar/Layouter.hxx>
28 #include <GraphicPropertyPanel.hxx>
29 #include <GraphicPropertyPanel.hrc>
30 #include <svx/dialogs.hrc>
31 #include <svx/dialmgr.hxx>
32 #include <vcl/field.hxx>
33 #include <vcl/lstbox.hxx>
34 #include <svl/intitem.hxx>
35 #include <sfx2/bindings.hxx>
36 #include <sfx2/dispatch.hxx>
37 #include "svx/dialogs.hrc"
38 
39 using namespace css;
40 using namespace cssu;
41 using ::sfx2::sidebar::Layouter;
42 using ::sfx2::sidebar::Theme;
43 
44 #define A2S(pString) (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(pString)))
45 
46 //////////////////////////////////////////////////////////////////////////////
47 
48 
49 namespace svx { namespace sidebar {
50 
51 //////////////////////////////////////////////////////////////////////////////
52 
GraphicPropertyPanel(Window * pParent,const cssu::Reference<css::frame::XFrame> & rxFrame,SfxBindings * pBindings)53 GraphicPropertyPanel::GraphicPropertyPanel(
54     Window* pParent,
55     const cssu::Reference<css::frame::XFrame>& rxFrame,
56     SfxBindings* pBindings)
57 :   Control(
58         pParent,
59         SVX_RES(RID_SIDEBAR_GRAPHIC_PANEL)),
60     mpFtBrightness(new FixedText(this, SVX_RES(FT_BRIGHTNESS))),
61     mpMtrBrightness(new MetricField(this, SVX_RES(MTR_BRIGHTNESS))),
62     mpFtContrast(new FixedText(this, SVX_RES(FT_CONTRAST))),
63     mpMtrContrast(new MetricField(this, SVX_RES(MTR_CONTRAST))),
64     mpFtColorMode(new FixedText(this, SVX_RES(FT_COLOR_MODE))),
65     mpLBColorMode(new ListBox(this, SVX_RES(LB_COLOR_MODE))),
66     mpFtTrans(new FixedText(this, SVX_RES(FT_TRANSPARENT))),
67     mpMtrTrans(new MetricField(this, SVX_RES(MTR_TRANSPARENT))),
68     mpMtrRed(new MetricField(this, SVX_RES(MF_RED))),
69     mpMtrGreen(new MetricField(this, SVX_RES(MF_GREEN))),
70     mpMtrBlue(new MetricField(this, SVX_RES(MF_BLUE))),
71     mpMtrGamma(new MetricField(this, SVX_RES(MF_GAMMA))),
72     maBrightControl(SID_ATTR_GRAF_LUMINANCE, *pBindings, *this),
73     maContrastControl(SID_ATTR_GRAF_CONTRAST, *pBindings, *this),
74     maTransparenceControl(SID_ATTR_GRAF_TRANSPARENCE, *pBindings, *this),
75     maRedControl(SID_ATTR_GRAF_RED, *pBindings, *this),
76     maGreenControl(SID_ATTR_GRAF_GREEN, *pBindings, *this),
77     maBlueControl(SID_ATTR_GRAF_BLUE, *pBindings, *this),
78     maGammaControl(SID_ATTR_GRAF_GAMMA, *pBindings, *this),
79     maModeControl(SID_ATTR_GRAF_MODE, *pBindings, *this),
80     maImgRed(this, SVX_RES(IMG_RED)),
81     maImgGreen(this, SVX_RES(IMG_GREEN)),
82     maImgBlue(this, SVX_RES(IMG_BLUE)),
83     maImgGamma(this, SVX_RES(IMG_GAMMA)),
84     mxFrame(rxFrame),
85     mpBindings(pBindings),
86     maLayouter(*this)
87 {
88     Initialize();
89     FreeResource();
90 
91     // Setup the grid layouter.
92     maLayouter.GetCell(0,0).SetControl(*mpFtBrightness).SetGridWidth(2);
93     maLayouter.GetCell(1,0).SetControl(*mpMtrBrightness).SetGridWidth(2);
94 
95     maLayouter.GetCell(0,3).SetControl(*mpFtContrast).SetGridWidth(2);
96     maLayouter.GetCell(1,3).SetControl(*mpMtrContrast).SetGridWidth(2);
97 
98     maLayouter.GetCell(2,0).SetControl(*mpFtColorMode).SetGridWidth(2);
99     maLayouter.GetCell(3,0).SetControl(*mpLBColorMode).SetGridWidth(2);
100 
101     maLayouter.GetCell(2,3).SetControl(*mpFtTrans).SetGridWidth(2);
102     maLayouter.GetCell(3,3).SetControl(*mpMtrTrans).SetGridWidth(2);
103 
104     maLayouter.GetCell(4,0).SetControl(maImgRed).SetFixedWidth();
105     maLayouter.GetCell(4,1).SetControl(*mpMtrRed);
106 
107     maLayouter.GetCell(5,0).SetControl(maImgBlue).SetFixedWidth();
108     maLayouter.GetCell(5,1).SetControl(*mpMtrBlue);
109 
110     maLayouter.GetCell(4,3).SetControl(maImgGreen).SetFixedWidth();
111     maLayouter.GetCell(4,4).SetControl(*mpMtrGreen);
112     maLayouter.GetCell(5,3).SetControl(maImgGamma).SetFixedWidth();
113     maLayouter.GetCell(5,4).SetControl(*mpMtrGamma);
114 
115     maLayouter.GetColumn(0)
116         .SetWeight(0)
117         .SetLeftPadding(Layouter::MapWidth(*this,SECTIONPAGE_MARGIN_HORIZONTAL));
118     maLayouter.GetColumn(1)
119         .SetWeight(1)
120         .SetMinimumWidth(Layouter::MapWidth(*this, MBOX_WIDTH - 10));
121     maLayouter.GetColumn(2)
122         .SetWeight(0)
123         .SetMinimumWidth(Layouter::MapWidth(*this, CONTROL_SPACING_HORIZONTAL));
124     maLayouter.GetColumn(3)
125         .SetWeight(0);
126     maLayouter.GetColumn(4)
127         .SetWeight(1)
128         .SetMinimumWidth(Layouter::MapWidth(*this, MBOX_WIDTH - 10))
129         .SetRightPadding(Layouter::MapWidth(*this,SECTIONPAGE_MARGIN_HORIZONTAL));
130 
131     // Make controls that display text handle short widths more
132     // graceful.
133     Layouter::PrepareForLayouting(*mpFtBrightness);
134     Layouter::PrepareForLayouting(*mpFtContrast);
135     Layouter::PrepareForLayouting(*mpFtColorMode);
136     Layouter::PrepareForLayouting(*mpFtTrans);
137 }
138 
139 //////////////////////////////////////////////////////////////////////////////
140 
~GraphicPropertyPanel()141 GraphicPropertyPanel::~GraphicPropertyPanel()
142 {
143 }
144 
145 //////////////////////////////////////////////////////////////////////////////
146 
Initialize()147 void GraphicPropertyPanel::Initialize()
148 {
149     mpFtBrightness->SetBackground(Wallpaper());
150     mpFtContrast->SetBackground(Wallpaper());
151     mpFtColorMode->SetBackground(Wallpaper());
152     mpFtTrans->SetBackground(Wallpaper());
153 
154     mpMtrBrightness->SetModifyHdl( LINK( this, GraphicPropertyPanel, ModifyBrightnessHdl ) );
155     mpMtrBrightness->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Brightness")));
156     mpMtrContrast->SetModifyHdl( LINK( this, GraphicPropertyPanel, ModifyContrastHdl ) );
157     mpMtrContrast->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Contrast")));
158     mpMtrTrans->SetModifyHdl( LINK( this, GraphicPropertyPanel, ModifyTransHdl ) );
159     mpMtrTrans->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Transparency")));
160 
161     mpLBColorMode->InsertEntry(String(SVX_RES(RID_SVXSTR_GRAFMODE_STANDARD)));
162     mpLBColorMode->InsertEntry(String(SVX_RES(RID_SVXSTR_GRAFMODE_GREYS)));
163     mpLBColorMode->InsertEntry(String(SVX_RES(RID_SVXSTR_GRAFMODE_MONO)));
164     mpLBColorMode->InsertEntry(String(SVX_RES(RID_SVXSTR_GRAFMODE_WATERMARK)));
165     mpLBColorMode->SetSelectHdl( LINK( this, GraphicPropertyPanel, ClickColorModeHdl ));
166     mpLBColorMode->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Color mode")));
167 
168     mpMtrRed->SetModifyHdl( LINK( this, GraphicPropertyPanel, RedHdl ) );
169     mpMtrGreen->SetModifyHdl( LINK( this, GraphicPropertyPanel, GreenHdl ) );
170     mpMtrBlue->SetModifyHdl( LINK( this, GraphicPropertyPanel, BlueHdl ) );
171     mpMtrGamma->SetModifyHdl( LINK( this, GraphicPropertyPanel, GammaHdl ) );
172     mpMtrRed->SetAccessibleName(mpMtrRed->GetQuickHelpText());
173     mpMtrGreen->SetAccessibleName(mpMtrGreen->GetQuickHelpText());
174     mpMtrBlue->SetAccessibleName(mpMtrBlue->GetQuickHelpText());
175     mpMtrGamma->SetAccessibleName(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Gamma value")));
176 
177     mpMtrRed->SetAccessibleRelationLabeledBy(mpMtrRed.get());
178     mpMtrGreen->SetAccessibleRelationLabeledBy(mpMtrGreen.get());
179     mpMtrBlue->SetAccessibleRelationLabeledBy(mpMtrBlue.get());
180     mpMtrGamma->SetAccessibleRelationLabeledBy(mpMtrGamma.get());
181     mpMtrBrightness->SetAccessibleRelationLabeledBy(mpFtBrightness.get());
182     mpMtrContrast->SetAccessibleRelationLabeledBy(mpFtContrast.get());
183     mpMtrTrans->SetAccessibleRelationLabeledBy(mpFtTrans.get());
184     mpLBColorMode->SetAccessibleRelationLabeledBy(mpFtColorMode.get());
185 
186     // Fix left position of some controls that may be wrong due to
187     // rounding errors.
188     const sal_Int32 nRight0 (mpLBColorMode->GetPosPixel().X() + mpLBColorMode->GetSizePixel().Width());
189     const sal_Int32 nRight1 (mpMtrTrans->GetPosPixel().X() + mpMtrTrans->GetSizePixel().Width());
190     mpMtrRed->SetPosPixel(Point(
191             nRight0 - mpMtrRed->GetSizePixel().Width(),
192             mpMtrRed->GetPosPixel().Y()));
193     mpMtrBlue->SetPosPixel(Point(
194             nRight0 - mpMtrBlue->GetSizePixel().Width(),
195             mpMtrBlue->GetPosPixel().Y()));
196     mpMtrGreen->SetPosPixel(Point(
197             nRight1 - mpMtrGreen->GetSizePixel().Width(),
198             mpMtrGreen->GetPosPixel().Y()));
199     mpMtrGamma->SetPosPixel(Point(
200             nRight1 - mpMtrGamma->GetSizePixel().Width(),
201             mpMtrGamma->GetPosPixel().Y()));
202 }
203 
204 
205 
206 
207 //////////////////////////////////////////////////////////////////////////////
208 
IMPL_LINK(GraphicPropertyPanel,ModifyBrightnessHdl,void *,EMPTYARG)209 IMPL_LINK( GraphicPropertyPanel, ModifyBrightnessHdl, void *, EMPTYARG )
210 {
211     const sal_Int16 nBright = mpMtrBrightness->GetValue();
212     const SfxInt16Item aBrightItem( SID_ATTR_GRAF_LUMINANCE, nBright );
213     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_LUMINANCE, SFX_CALLMODE_RECORD, &aBrightItem, 0L);
214     return 0L;
215 }
216 
217 //////////////////////////////////////////////////////////////////////////////
218 
IMPL_LINK(GraphicPropertyPanel,ModifyContrastHdl,void *,EMPTYARG)219 IMPL_LINK( GraphicPropertyPanel, ModifyContrastHdl, void *, EMPTYARG )
220 {
221     const sal_Int16 nContrast = mpMtrContrast->GetValue();
222     const SfxInt16Item aContrastItem( SID_ATTR_GRAF_CONTRAST, nContrast );
223     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_CONTRAST, SFX_CALLMODE_RECORD, &aContrastItem, 0L);
224     return 0L;
225 }
226 
227 //////////////////////////////////////////////////////////////////////////////
228 
IMPL_LINK(GraphicPropertyPanel,ModifyTransHdl,void *,EMPTYARG)229 IMPL_LINK( GraphicPropertyPanel, ModifyTransHdl, void *, EMPTYARG )
230 {
231     const sal_Int16 nTrans = mpMtrTrans->GetValue();
232     const SfxInt16Item aTransItem( SID_ATTR_GRAF_TRANSPARENCE, nTrans );
233     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_TRANSPARENCE, SFX_CALLMODE_RECORD, &aTransItem, 0L);
234     return 0L;
235 }
236 
237 //////////////////////////////////////////////////////////////////////////////
238 
239 IMPL_LINK( GraphicPropertyPanel, ClickColorModeHdl, ToolBox *, /* pBox */)
240 {
241     const sal_Int16 nTrans = mpLBColorMode->GetSelectEntryPos();
242     const SfxInt16Item aTransItem( SID_ATTR_GRAF_MODE, nTrans );
243     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_MODE, SFX_CALLMODE_RECORD, &aTransItem, 0L);
244     return 0L;
245 }
246 
247 //////////////////////////////////////////////////////////////////////////////
248 
IMPL_LINK(GraphicPropertyPanel,RedHdl,void *,EMPTYARG)249 IMPL_LINK( GraphicPropertyPanel, RedHdl, void*, EMPTYARG )
250 {
251     const sal_Int16 nRed = mpMtrRed->GetValue();
252     const SfxInt16Item aRedItem( SID_ATTR_GRAF_RED, nRed );
253     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_RED, SFX_CALLMODE_RECORD, &aRedItem, 0L);
254     return 0L;
255 }
256 
257 //////////////////////////////////////////////////////////////////////////////
258 
IMPL_LINK(GraphicPropertyPanel,GreenHdl,void *,EMPTYARG)259 IMPL_LINK( GraphicPropertyPanel, GreenHdl, void*, EMPTYARG )
260 {
261     const sal_Int16 nGreen = mpMtrGreen->GetValue();
262     const SfxInt16Item aGreenItem( SID_ATTR_GRAF_GREEN, nGreen );
263     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_GREEN, SFX_CALLMODE_RECORD, &aGreenItem, 0L);
264     return 0L;
265 }
266 
267 //////////////////////////////////////////////////////////////////////////////
268 
IMPL_LINK(GraphicPropertyPanel,BlueHdl,void *,EMPTYARG)269 IMPL_LINK(GraphicPropertyPanel, BlueHdl, void *, EMPTYARG)
270 {
271     const sal_Int16 nBlue = mpMtrBlue->GetValue();
272     const SfxInt16Item aBlueItem( SID_ATTR_GRAF_BLUE, nBlue );
273     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_BLUE, SFX_CALLMODE_RECORD, &aBlueItem, 0L);
274     return 0L;
275 }
276 
277 //////////////////////////////////////////////////////////////////////////////
278 
IMPL_LINK(GraphicPropertyPanel,GammaHdl,void *,EMPTYARG)279 IMPL_LINK(GraphicPropertyPanel, GammaHdl, void *, EMPTYARG)
280 {
281     const sal_Int32 nGamma = mpMtrGamma->GetValue();
282     const SfxInt32Item nGammaItem( SID_ATTR_GRAF_GAMMA, nGamma );
283     GetBindings()->GetDispatcher()->Execute(SID_ATTR_GRAF_GAMMA, SFX_CALLMODE_RECORD, &nGammaItem, 0L);
284     return 0L;
285 }
286 
287 //////////////////////////////////////////////////////////////////////////////
288 
SetupIcons(void)289 void GraphicPropertyPanel::SetupIcons(void)
290 {
291     if(Theme::GetBoolean(Theme::Bool_UseSymphonyIcons))
292     {
293         // todo
294     }
295     else
296     {
297         // todo
298     }
299 }
300 
301 //////////////////////////////////////////////////////////////////////////////
302 
Create(Window * pParent,const cssu::Reference<css::frame::XFrame> & rxFrame,SfxBindings * pBindings)303 GraphicPropertyPanel* GraphicPropertyPanel::Create (
304     Window* pParent,
305     const cssu::Reference<css::frame::XFrame>& rxFrame,
306     SfxBindings* pBindings)
307 {
308     if (pParent == NULL)
309         throw lang::IllegalArgumentException(A2S("no parent window given to GraphicPropertyPanel::Create"), NULL, 0);
310     if ( ! rxFrame.is())
311         throw lang::IllegalArgumentException(A2S("no XFrame given to GraphicPropertyPanel::Create"), NULL, 1);
312     if (pBindings == NULL)
313         throw lang::IllegalArgumentException(A2S("no SfxBindings given to GraphicPropertyPanel::Create"), NULL, 2);
314 
315     return new GraphicPropertyPanel(
316         pParent,
317         rxFrame,
318         pBindings);
319 }
320 
321 //////////////////////////////////////////////////////////////////////////////
322 
DataChanged(const DataChangedEvent & rEvent)323 void GraphicPropertyPanel::DataChanged(
324     const DataChangedEvent& rEvent)
325 {
326     (void)rEvent;
327 
328     SetupIcons();
329 }
330 
331 //////////////////////////////////////////////////////////////////////////////
332 
NotifyItemUpdate(sal_uInt16 nSID,SfxItemState eState,const SfxPoolItem * pState,const bool bIsEnabled)333 void GraphicPropertyPanel::NotifyItemUpdate(
334     sal_uInt16 nSID,
335     SfxItemState eState,
336     const SfxPoolItem* pState,
337     const bool bIsEnabled)
338 {
339     (void)bIsEnabled;
340 
341     switch( nSID )
342     {
343         case SID_ATTR_GRAF_LUMINANCE:
344         {
345             if(eState >= SFX_ITEM_AVAILABLE)
346             {
347                 mpMtrBrightness->Enable();
348                 const SfxInt16Item* pItem = dynamic_cast< const SfxInt16Item* >(pState);
349 
350                 if(pItem)
351                 {
352                     const sal_Int64 nBright = pItem->GetValue();
353                     mpMtrBrightness->SetValue(nBright);
354                 }
355             }
356             else if(SFX_ITEM_DISABLED == eState)
357             {
358                 mpMtrBrightness->Disable();
359             }
360             else
361             {
362                 mpMtrBrightness->Enable();
363                 mpMtrBrightness->SetText(String());
364             }
365             break;
366         }
367         case SID_ATTR_GRAF_CONTRAST:
368         {
369             if(eState >= SFX_ITEM_AVAILABLE)
370             {
371                 mpMtrContrast->Enable();
372                 const SfxInt16Item* pItem = dynamic_cast< const SfxInt16Item* >(pState);
373 
374                 if(pItem)
375                 {
376                     const sal_Int64 nContrast = pItem->GetValue();
377                     mpMtrContrast->SetValue(nContrast);
378                 }
379             }
380             else if(SFX_ITEM_DISABLED == eState)
381             {
382                 mpMtrContrast->Disable();
383             }
384             else
385             {
386                 mpMtrContrast->Enable();
387                 mpMtrContrast->SetText(String());
388             }
389             break;
390         }
391         case SID_ATTR_GRAF_TRANSPARENCE:
392         {
393             if(eState >= SFX_ITEM_AVAILABLE)
394             {
395                 mpMtrTrans->Enable();
396                 const SfxUInt16Item* pItem = dynamic_cast< const SfxUInt16Item* >(pState);
397 
398                 if(pItem)
399                 {
400                     const sal_Int64 nTrans = pItem->GetValue();
401                     mpMtrTrans->SetValue(nTrans);
402                 }
403             }
404             else if(SFX_ITEM_DISABLED == eState)
405             {
406                 mpMtrTrans->Disable();
407             }
408             else
409             {
410                 mpMtrTrans->Enable();
411                 mpMtrTrans->SetText(String());
412             }
413             break;
414         }
415         case SID_ATTR_GRAF_MODE:
416         {
417             if(eState >= SFX_ITEM_AVAILABLE)
418             {
419                 mpLBColorMode->Enable();
420                 const SfxUInt16Item* pItem = dynamic_cast< const SfxUInt16Item* >(pState);
421 
422                 if(pItem)
423                 {
424                     const sal_Int64 nTrans = pItem->GetValue();
425                     mpLBColorMode->SelectEntryPos(nTrans);
426                 }
427             }
428             else if(SFX_ITEM_DISABLED == eState)
429             {
430                 mpLBColorMode->Disable();
431             }
432             else
433             {
434                 mpLBColorMode->Enable();
435                 mpLBColorMode->SetNoSelection();
436             }
437             break;
438         }
439         case SID_ATTR_GRAF_RED:
440         {
441             if(eState >= SFX_ITEM_AVAILABLE)
442             {
443                 mpMtrRed->Enable();
444                 const SfxInt16Item* pItem = dynamic_cast< const SfxInt16Item* >(pState);
445 
446                 if(pItem)
447                 {
448                     const sal_Int64 nRed = pItem->GetValue();
449                     mpMtrRed->SetValue( nRed );
450                 }
451             }
452             else if(SFX_ITEM_DISABLED == eState)
453             {
454                 mpMtrRed->Disable();
455             }
456             else
457             {
458                 mpMtrRed->Enable();
459                 mpMtrRed->SetText(String());
460             }
461             break;
462         }
463         case SID_ATTR_GRAF_GREEN:
464         {
465             if(eState >= SFX_ITEM_AVAILABLE)
466             {
467                 mpMtrGreen->Enable();
468                 const SfxInt16Item* pItem = dynamic_cast< const SfxInt16Item* >(pState);
469 
470                 if(pItem)
471                 {
472                     const sal_Int64 nGreen = pItem->GetValue();
473                     mpMtrGreen->SetValue( nGreen );
474                 }
475             }
476             else if(SFX_ITEM_DISABLED == eState)
477             {
478                 mpMtrGreen->Disable();
479             }
480             else
481             {
482                 mpMtrGreen->Enable();
483                 mpMtrGreen->SetText(String());
484             }
485             break;
486         }
487         case SID_ATTR_GRAF_BLUE:
488         {
489             if(eState >= SFX_ITEM_AVAILABLE)
490             {
491                 mpMtrBlue->Enable();
492                 const SfxInt16Item* pItem = dynamic_cast< const SfxInt16Item* >(pState);
493 
494                 if(pItem)
495                 {
496                     const sal_Int64 nBlue = pItem->GetValue();
497                     mpMtrBlue->SetValue( nBlue );
498                 }
499             }
500             else if(SFX_ITEM_DISABLED == eState)
501             {
502                 mpMtrBlue->Disable();
503             }
504             else
505             {
506                 mpMtrBlue->Enable();
507                 mpMtrBlue->SetText(String());
508             }
509             break;
510         }
511         case SID_ATTR_GRAF_GAMMA:
512         {
513             if(eState >= SFX_ITEM_AVAILABLE)
514             {
515                 mpMtrGamma->Enable();
516                 const SfxUInt32Item* pItem = dynamic_cast< const SfxUInt32Item* >(pState);
517 
518                 if(pItem)
519                 {
520                     const sal_Int64 nGamma = pItem->GetValue();
521                     mpMtrGamma->SetValue( nGamma );
522                 }
523             }
524             else if(SFX_ITEM_DISABLED == eState)
525             {
526                 mpMtrGamma->Disable();
527             }
528             else
529             {
530                 mpMtrGamma->Enable();
531                 mpMtrGamma->SetText(String());
532             }
533             break;
534         }
535     }
536 }
537 
538 
539 
540 
GetBindings()541 SfxBindings* GraphicPropertyPanel::GetBindings()
542 {
543     return mpBindings;
544 }
545 
546 
547 
548 
Resize(void)549 void GraphicPropertyPanel::Resize (void)
550 {
551     maLayouter.Layout();
552 }
553 
554 
555 
556 }} // end of namespace ::svx::sidebar
557