1c45d927aSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3c45d927aSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4c45d927aSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5c45d927aSAndrew Rist  * distributed with this work for additional information
6c45d927aSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7c45d927aSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8c45d927aSAndrew Rist  * "License"); you may not use this file except in compliance
9c45d927aSAndrew Rist  * with the License.  You may obtain a copy of the License at
10c45d927aSAndrew Rist  *
11c45d927aSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12c45d927aSAndrew Rist  *
13c45d927aSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14c45d927aSAndrew Rist  * software distributed under the License is distributed on an
15c45d927aSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16c45d927aSAndrew Rist  * KIND, either express or implied.  See the License for the
17c45d927aSAndrew Rist  * specific language governing permissions and limitations
18c45d927aSAndrew Rist  * under the License.
19c45d927aSAndrew Rist  *
20c45d927aSAndrew Rist  *************************************************************/
21c45d927aSAndrew Rist 
22c45d927aSAndrew Rist 
23cdf0e10cSrcweir #ifndef SD_SLIDETRANSITIONPANE_HXX
24cdf0e10cSrcweir #define SD_SLIDETRANSITIONPANE_HXX
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #include "EventMultiplexer.hxx"
27cdf0e10cSrcweir 
28cdf0e10cSrcweir #include "SlideSorterViewShell.hxx"
29cdf0e10cSrcweir 
30cdf0e10cSrcweir #include <vcl/ctrl.hxx>
31cdf0e10cSrcweir #include <vcl/lstbox.hxx>
32cdf0e10cSrcweir #include <vcl/fixed.hxx>
33cdf0e10cSrcweir #include <vcl/button.hxx>
34cdf0e10cSrcweir #include <vcl/field.hxx>
35cdf0e10cSrcweir #include <com/sun/star/drawing/XDrawView.hpp>
36cdf0e10cSrcweir #include <com/sun/star/frame/XModel.hpp>
37cdf0e10cSrcweir 
38cdf0e10cSrcweir #include <vector>
39cdf0e10cSrcweir #include <map>
40cdf0e10cSrcweir 
41cdf0e10cSrcweir class SdDrawDocument;
42cdf0e10cSrcweir class SdPage;
43cdf0e10cSrcweir 
44cdf0e10cSrcweir namespace sd
45cdf0e10cSrcweir {
46cdf0e10cSrcweir 
47cdf0e10cSrcweir class ViewShellBase;
48cdf0e10cSrcweir 
49cdf0e10cSrcweir namespace impl
50cdf0e10cSrcweir {
51cdf0e10cSrcweir     struct TransitionEffect;
52cdf0e10cSrcweir }
53cdf0e10cSrcweir 
54cdf0e10cSrcweir class SlideTransitionPane : public Control
55cdf0e10cSrcweir {
56cdf0e10cSrcweir public:
57cdf0e10cSrcweir     explicit SlideTransitionPane(
58cdf0e10cSrcweir         ::Window * pParent,
59cdf0e10cSrcweir         ViewShellBase & rBase,
60cdf0e10cSrcweir         const Size& rMinSize,
61cdf0e10cSrcweir         SdDrawDocument* pDoc );
62cdf0e10cSrcweir 	virtual ~SlideTransitionPane();
63cdf0e10cSrcweir 
64*7a32b0c8SAndre Fischer     // Window
65cdf0e10cSrcweir     virtual void Resize();
66*7a32b0c8SAndre Fischer     virtual void DataChanged (const DataChangedEvent& rEvent);
67cdf0e10cSrcweir 
68cdf0e10cSrcweir 	void onSelectionChanged();
69cdf0e10cSrcweir 	void onChangeCurrentPage();
70cdf0e10cSrcweir 
71cdf0e10cSrcweir private:
72cdf0e10cSrcweir     void updateLayout();
73cdf0e10cSrcweir 	void updateControls();
74cdf0e10cSrcweir     void updateControlState();
75cdf0e10cSrcweir 
76cdf0e10cSrcweir     void updateSoundList();
77cdf0e10cSrcweir     void openSoundFileDialog();
78cdf0e10cSrcweir 
79cdf0e10cSrcweir     impl::TransitionEffect getTransitionEffectFromControls() const;
80cdf0e10cSrcweir 
81cdf0e10cSrcweir     void applyToSelectedPages();
82cdf0e10cSrcweir     void playCurrentEffect();
83cdf0e10cSrcweir 
84cdf0e10cSrcweir 	void addListener();
85cdf0e10cSrcweir 	void removeListener();
86cdf0e10cSrcweir 
87cdf0e10cSrcweir     ::sd::slidesorter::SharedPageSelection getSelectedPages (void) const;
88cdf0e10cSrcweir 
89*7a32b0c8SAndre Fischer     void UpdateLook (void);
90*7a32b0c8SAndre Fischer 
91cdf0e10cSrcweir     DECL_LINK( ApplyToAllButtonClicked, void * );
92cdf0e10cSrcweir     DECL_LINK( PlayButtonClicked, void * );
93cdf0e10cSrcweir     DECL_LINK( SlideShowButtonClicked, void * );
94cdf0e10cSrcweir 	DECL_LINK( AutoPreviewClicked, void * );
95cdf0e10cSrcweir 
96cdf0e10cSrcweir     DECL_LINK( TransitionSelected, void * );
97cdf0e10cSrcweir     DECL_LINK( AdvanceSlideRadioButtonToggled, void * );
98cdf0e10cSrcweir     DECL_LINK( AdvanceTimeModified, void * );
99cdf0e10cSrcweir     DECL_LINK( SpeedListBoxSelected, void * );
100cdf0e10cSrcweir     DECL_LINK( SoundListBoxSelected, void * );
101cdf0e10cSrcweir     DECL_LINK( LoopSoundBoxChecked, void * );
102cdf0e10cSrcweir     DECL_LINK(EventMultiplexerListener, tools::EventMultiplexerEvent*);
103cdf0e10cSrcweir     DECL_LINK(LateInitCallback, Timer*);
104cdf0e10cSrcweir 
105cdf0e10cSrcweir     ViewShellBase &   mrBase;
106cdf0e10cSrcweir     SdDrawDocument *  mpDrawDoc;
107cdf0e10cSrcweir     Size              maMinSize;
108cdf0e10cSrcweir 
109cdf0e10cSrcweir     FixedLine    maFL_APPLY_TRANSITION;
110cdf0e10cSrcweir     ListBox      maLB_SLIDE_TRANSITIONS;
111cdf0e10cSrcweir     FixedLine    maFL_MODIFY_TRANSITION;
112cdf0e10cSrcweir     FixedText    maFT_SPEED;
113cdf0e10cSrcweir     ListBox      maLB_SPEED;
114cdf0e10cSrcweir     FixedText    maFT_SOUND;
115cdf0e10cSrcweir     ListBox      maLB_SOUND;
116cdf0e10cSrcweir     CheckBox     maCB_LOOP_SOUND;
117cdf0e10cSrcweir     FixedLine    maFL_ADVANCE_SLIDE;
118cdf0e10cSrcweir     RadioButton  maRB_ADVANCE_ON_MOUSE;
119cdf0e10cSrcweir     RadioButton  maRB_ADVANCE_AUTO;
120cdf0e10cSrcweir     MetricField  maMF_ADVANCE_AUTO_AFTER;
121cdf0e10cSrcweir     FixedLine    maFL_EMPTY1;
122cdf0e10cSrcweir     PushButton   maPB_APPLY_TO_ALL;
123cdf0e10cSrcweir     PushButton   maPB_PLAY;
124cdf0e10cSrcweir     PushButton   maPB_SLIDE_SHOW;
125cdf0e10cSrcweir     FixedLine    maFL_EMPTY2;
126cdf0e10cSrcweir     CheckBox     maCB_AUTO_PREVIEW;
127cdf0e10cSrcweir 
128cdf0e10cSrcweir     String       maSTR_NO_TRANSITION;
129cdf0e10cSrcweir 
130cdf0e10cSrcweir 	::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawView >             mxView;
131cdf0e10cSrcweir 	::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >                  mxModel;
132cdf0e10cSrcweir 
133cdf0e10cSrcweir     bool         mbHasSelection;
134cdf0e10cSrcweir     bool         mbUpdatingControls;
135cdf0e10cSrcweir     bool         mbIsMainViewChangePending;
136cdf0e10cSrcweir 
137cdf0e10cSrcweir     typedef ::std::vector< String > tSoundListType;
138cdf0e10cSrcweir     tSoundListType  maSoundList;
139cdf0e10cSrcweir     mutable String  maCurrentSoundFile;
140cdf0e10cSrcweir 
141cdf0e10cSrcweir     typedef ::std::map< sal_uInt16, sal_uInt16 > tPresetIndexesType;
142cdf0e10cSrcweir     tPresetIndexesType m_aPresetIndexes;
143cdf0e10cSrcweir 
144cdf0e10cSrcweir     Timer maLateInitTimer;
145cdf0e10cSrcweir };
146cdf0e10cSrcweir 
147cdf0e10cSrcweir } //  namespace sd
148cdf0e10cSrcweir 
149cdf0e10cSrcweir // SD_SLIDETRANSITIONPANE_HXX
150cdf0e10cSrcweir #endif
151