1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir #ifndef _CHART2_TP_3D_SCENE_ILLUMIMATION_HXX
28*cdf0e10cSrcweir #define _CHART2_TP_3D_SCENE_ILLUMIMATION_HXX
29*cdf0e10cSrcweir 
30*cdf0e10cSrcweir #include "ModifyListenerCallBack.hxx"
31*cdf0e10cSrcweir #include "TimerTriggeredControllerLock.hxx"
32*cdf0e10cSrcweir 
33*cdf0e10cSrcweir // #ifndef _COM_SUN_STAR_CHART2_SCENEDESCRIPTOR_HPP_
34*cdf0e10cSrcweir // #include <com/sun/star/chart2/SceneDescriptor.hpp>
35*cdf0e10cSrcweir // #endif
36*cdf0e10cSrcweir #include <com/sun/star/beans/XPropertySet.hpp>
37*cdf0e10cSrcweir 
38*cdf0e10cSrcweir // header for class TabPage
39*cdf0e10cSrcweir #include <vcl/tabpage.hxx>
40*cdf0e10cSrcweir // header for class FixedText
41*cdf0e10cSrcweir #include <vcl/fixed.hxx>
42*cdf0e10cSrcweir // header for class CheckBox
43*cdf0e10cSrcweir #ifndef _SV_BUTTON_HXX
44*cdf0e10cSrcweir #include <vcl/button.hxx>
45*cdf0e10cSrcweir #endif
46*cdf0e10cSrcweir // header for class ColorLB
47*cdf0e10cSrcweir #include <svx/dlgctrl.hxx>
48*cdf0e10cSrcweir // header for class SvxLightCtl3D
49*cdf0e10cSrcweir #include <svx/dlgctl3d.hxx>
50*cdf0e10cSrcweir 
51*cdf0e10cSrcweir //.............................................................................
52*cdf0e10cSrcweir namespace chart
53*cdf0e10cSrcweir {
54*cdf0e10cSrcweir //.............................................................................
55*cdf0e10cSrcweir 
56*cdf0e10cSrcweir class LightButton : public ImageButton
57*cdf0e10cSrcweir {
58*cdf0e10cSrcweir public:
59*cdf0e10cSrcweir     LightButton( Window* pParent, const ResId& rResId, sal_Int32 nLightNumber );
60*cdf0e10cSrcweir     virtual ~LightButton();
61*cdf0e10cSrcweir 
62*cdf0e10cSrcweir     void switchLightOn(bool bOn);
63*cdf0e10cSrcweir     bool isLightOn() const;
64*cdf0e10cSrcweir 
65*cdf0e10cSrcweir private:
66*cdf0e10cSrcweir     bool m_bLightOn;
67*cdf0e10cSrcweir };
68*cdf0e10cSrcweir 
69*cdf0e10cSrcweir class ColorButton : public ImageButton
70*cdf0e10cSrcweir {
71*cdf0e10cSrcweir public:
72*cdf0e10cSrcweir     ColorButton( Window* pParent, const ResId& rResId );
73*cdf0e10cSrcweir     virtual ~ColorButton();
74*cdf0e10cSrcweir };
75*cdf0e10cSrcweir 
76*cdf0e10cSrcweir struct LightSourceInfo;
77*cdf0e10cSrcweir 
78*cdf0e10cSrcweir class ThreeD_SceneIllumination_TabPage : public TabPage
79*cdf0e10cSrcweir {
80*cdf0e10cSrcweir public:
81*cdf0e10cSrcweir     ThreeD_SceneIllumination_TabPage(
82*cdf0e10cSrcweir         Window* pWindow,
83*cdf0e10cSrcweir         const ::com::sun::star::uno::Reference<
84*cdf0e10cSrcweir             ::com::sun::star::beans::XPropertySet > & xSceneProperties,
85*cdf0e10cSrcweir         const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& xChartModel,
86*cdf0e10cSrcweir         XColorTable* pColorTable=0 );
87*cdf0e10cSrcweir 	virtual ~ThreeD_SceneIllumination_TabPage();
88*cdf0e10cSrcweir 
89*cdf0e10cSrcweir     // has to be called in case the dialog was closed with OK
90*cdf0e10cSrcweir     void commitPendingChanges();
91*cdf0e10cSrcweir 
92*cdf0e10cSrcweir private:
93*cdf0e10cSrcweir     DECL_LINK( ClickLightSourceButtonHdl, LightButton* );
94*cdf0e10cSrcweir     DECL_LINK( SelectColorHdl, ColorLB* );
95*cdf0e10cSrcweir     DECL_LINK( ColorDialogHdl, Button* );
96*cdf0e10cSrcweir     DECL_LINK( PreviewChangeHdl, void* );
97*cdf0e10cSrcweir     DECL_LINK( PreviewSelectHdl, void* );
98*cdf0e10cSrcweir 
99*cdf0e10cSrcweir     void updatePreview();
100*cdf0e10cSrcweir 
101*cdf0e10cSrcweir private:
102*cdf0e10cSrcweir     DECL_LINK(fillControlsFromModel, void *);
103*cdf0e10cSrcweir 
104*cdf0e10cSrcweir     void applyLightSourceToModel( sal_uInt32 nLightNumber );
105*cdf0e10cSrcweir     void applyLightSourcesToModel();
106*cdf0e10cSrcweir 
107*cdf0e10cSrcweir     FixedText   m_aFT_LightSource;
108*cdf0e10cSrcweir 
109*cdf0e10cSrcweir     LightButton m_aBtn_Light1;
110*cdf0e10cSrcweir     LightButton m_aBtn_Light2;
111*cdf0e10cSrcweir     LightButton m_aBtn_Light3;
112*cdf0e10cSrcweir     LightButton m_aBtn_Light4;
113*cdf0e10cSrcweir     LightButton m_aBtn_Light5;
114*cdf0e10cSrcweir     LightButton m_aBtn_Light6;
115*cdf0e10cSrcweir     LightButton m_aBtn_Light7;
116*cdf0e10cSrcweir     LightButton m_aBtn_Light8;
117*cdf0e10cSrcweir 
118*cdf0e10cSrcweir     ColorLB     m_aLB_LightSource;
119*cdf0e10cSrcweir     ColorButton m_aBtn_LightSource_Color;
120*cdf0e10cSrcweir 
121*cdf0e10cSrcweir     FixedText   m_aFT_AmbientLight;
122*cdf0e10cSrcweir     ColorLB     m_aLB_AmbientLight;
123*cdf0e10cSrcweir     ColorButton m_aBtn_AmbientLight_Color;
124*cdf0e10cSrcweir 
125*cdf0e10cSrcweir     SvxLightCtl3D   m_aCtl_Preview;
126*cdf0e10cSrcweir 
127*cdf0e10cSrcweir     LightSourceInfo* m_pLightSourceInfoList;
128*cdf0e10cSrcweir 
129*cdf0e10cSrcweir     ::com::sun::star::uno::Reference<
130*cdf0e10cSrcweir             ::com::sun::star::beans::XPropertySet > m_xSceneProperties;
131*cdf0e10cSrcweir 
132*cdf0e10cSrcweir     TimerTriggeredControllerLock    m_aTimerTriggeredControllerLock;
133*cdf0e10cSrcweir 
134*cdf0e10cSrcweir     bool            m_bInCommitToModel;
135*cdf0e10cSrcweir 
136*cdf0e10cSrcweir     ModifyListenerCallBack m_aModelChangeListener;
137*cdf0e10cSrcweir     ::com::sun::star::uno::Reference<
138*cdf0e10cSrcweir         ::com::sun::star::frame::XModel >       m_xChartModel;
139*cdf0e10cSrcweir };
140*cdf0e10cSrcweir 
141*cdf0e10cSrcweir //.............................................................................
142*cdf0e10cSrcweir } //namespace chart
143*cdf0e10cSrcweir //.............................................................................
144*cdf0e10cSrcweir 
145*cdf0e10cSrcweir #endif
146