xref: /trunk/main/sd/source/ui/slideshow/showwindow.hxx (revision 9d97e9635cf537de28a9272394b68cfd2c8f8314)
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
10cdf0e10cSrcweir  *
11c45d927aSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
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.
19cdf0e10cSrcweir  *
20c45d927aSAndrew Rist  *************************************************************/
21c45d927aSAndrew Rist 
22cdf0e10cSrcweir #ifndef SD_SHOW_WINDOW_HXX
23cdf0e10cSrcweir #define SD_SHOW_WINDOW_HXX
24cdf0e10cSrcweir 
25cdf0e10cSrcweir #include <rtl/ref.hxx>
26cdf0e10cSrcweir #include <sal/types.h>
27cdf0e10cSrcweir #include <vcl/timer.hxx>
28cdf0e10cSrcweir #include <vcl/graph.hxx>
29cdf0e10cSrcweir 
30cdf0e10cSrcweir #ifndef SD_WINDOW_HXX
31cdf0e10cSrcweir #include "Window.hxx"
32cdf0e10cSrcweir #endif
33cdf0e10cSrcweir 
34cdf0e10cSrcweir #include "slideshowimpl.hxx"
35cdf0e10cSrcweir 
36cdf0e10cSrcweir // ----------------
37cdf0e10cSrcweir // - SdShowWindow -
38cdf0e10cSrcweir // ----------------
39cdf0e10cSrcweir 
40cdf0e10cSrcweir namespace sd {
41cdf0e10cSrcweir 
42cdf0e10cSrcweir class SlideshowImpl;
43cdf0e10cSrcweir class PreviewWindow;
44cdf0e10cSrcweir class ViewShell;
45cdf0e10cSrcweir 
46cdf0e10cSrcweir // -----------
47cdf0e10cSrcweir // - Defines -
48cdf0e10cSrcweir // -----------
49cdf0e10cSrcweir 
50cdf0e10cSrcweir #define SLIDE_NO_TIMEOUT SAL_MAX_INT32
51cdf0e10cSrcweir 
52cdf0e10cSrcweir // ---------
53cdf0e10cSrcweir // - Enums -
54cdf0e10cSrcweir // ---------
55cdf0e10cSrcweir 
56cdf0e10cSrcweir enum ShowWindowMode
57cdf0e10cSrcweir {
58cdf0e10cSrcweir     SHOWWINDOWMODE_NORMAL = 0,
59cdf0e10cSrcweir     SHOWWINDOWMODE_PAUSE = 1,
60cdf0e10cSrcweir     SHOWWINDOWMODE_END = 2,
61cdf0e10cSrcweir     SHOWWINDOWMODE_BLANK = 3,
62cdf0e10cSrcweir     SHOWWINDOWMODE_PREVIEW = 4
63cdf0e10cSrcweir };
64cdf0e10cSrcweir 
65cdf0e10cSrcweir //class ShowWindowImpl;
66cdf0e10cSrcweir 
67cdf0e10cSrcweir class ShowWindow
68cdf0e10cSrcweir     : public ::sd::Window
69cdf0e10cSrcweir {
70cdf0e10cSrcweir //  friend class ShowWindowImpl;
71cdf0e10cSrcweir public:
72cdf0e10cSrcweir     ShowWindow ( const ::rtl::Reference< ::sd::SlideshowImpl >& xController, ::Window* pParent );
73cdf0e10cSrcweir     virtual ~ShowWindow (void);
74cdf0e10cSrcweir 
75cdf0e10cSrcweir     sal_Bool            SetEndMode();
76cdf0e10cSrcweir     sal_Bool            SetPauseMode( sal_Int32 nPageIndexToRestart, sal_Int32 nTimeoutSec = SLIDE_NO_TIMEOUT, Graphic* pLogo = NULL );
77cdf0e10cSrcweir     sal_Bool            SetBlankMode( sal_Int32 nPageIndexToRestart, const Color& rBlankColor );
78cdf0e10cSrcweir 
GetBlankColor() const79cdf0e10cSrcweir     const Color&        GetBlankColor() const { return maShowBackground.GetColor(); }
80cdf0e10cSrcweir 
81cdf0e10cSrcweir     void            SetPreviewMode();
82cdf0e10cSrcweir     void            SetPresentationArea( const Rectangle& rPresArea );
83cdf0e10cSrcweir 
SetMouseAutoHide(bool bMouseAutoHide)84cdf0e10cSrcweir     void            SetMouseAutoHide( bool bMouseAutoHide ) { mbMouseAutoHide = bMouseAutoHide; }
85cdf0e10cSrcweir 
GetShowWindowMode() const86cdf0e10cSrcweir     ShowWindowMode  GetShowWindowMode() const { return meShowWindowMode; }
87cdf0e10cSrcweir 
88cdf0e10cSrcweir     void            RestartShow( sal_Int32 nPageIndexToRestart );
89cdf0e10cSrcweir 
90cdf0e10cSrcweir     virtual void    Move();
91cdf0e10cSrcweir     virtual void    Resize();
92cdf0e10cSrcweir     virtual void    GetFocus();
93cdf0e10cSrcweir     virtual void    LoseFocus();
94cdf0e10cSrcweir //  virtual void    GrabFocus();
95cdf0e10cSrcweir 
96cdf0e10cSrcweir     virtual void    KeyInput(const KeyEvent& rKEvt);
97cdf0e10cSrcweir     virtual void    MouseMove(const MouseEvent& rMEvt);
98cdf0e10cSrcweir     virtual void    MouseButtonUp(const MouseEvent& rMEvt);
99cdf0e10cSrcweir     virtual void    MouseButtonDown(const MouseEvent& rMEvt);
100cdf0e10cSrcweir     virtual void    Paint(const Rectangle& rRect);
101cdf0e10cSrcweir     virtual long    Notify(NotifyEvent& rNEvt);
1020deba7fbSSteve Yin     // Overload the sd::Window's CreateAccessible to create a different accessible object
1030deba7fbSSteve Yin     virtual ::com::sun::star::uno::Reference<
1040deba7fbSSteve Yin         ::com::sun::star::accessibility::XAccessible>
1050deba7fbSSteve Yin         CreateAccessible (void);
106cdf0e10cSrcweir 
107cdf0e10cSrcweir     void            TerminateShow();
108cdf0e10cSrcweir     void            RestartShow();
109cdf0e10cSrcweir 
110cdf0e10cSrcweir private:
111cdf0e10cSrcweir     void            DrawPauseScene( sal_Bool bTimeoutOnly );
112cdf0e10cSrcweir     void            DrawEndScene();
113cdf0e10cSrcweir     void            DrawBlankScene();
114cdf0e10cSrcweir 
115cdf0e10cSrcweir     void            DeleteWindowFromPaintView();
116cdf0e10cSrcweir     void            AddWindowToPaintView();
117cdf0e10cSrcweir 
118cdf0e10cSrcweir private:
119cdf0e10cSrcweir     Timer           maPauseTimer;
120cdf0e10cSrcweir     Timer           maMouseTimer;
121cdf0e10cSrcweir     Wallpaper       maShowBackground;
122cdf0e10cSrcweir     Graphic         maLogo;
123cdf0e10cSrcweir     sal_uLong           mnPauseTimeout;
124cdf0e10cSrcweir     sal_Int32       mnRestartPageIndex;
125cdf0e10cSrcweir     ShowWindowMode  meShowWindowMode;
126cdf0e10cSrcweir     sal_Bool            mbShowNavigatorAfterSpecialMode;
127cdf0e10cSrcweir     Rectangle       maPresArea;
128cdf0e10cSrcweir     bool            mbMouseAutoHide;
129cdf0e10cSrcweir     bool            mbMouseCursorHidden;
130cdf0e10cSrcweir     sal_uLong           mnFirstMouseMove;
131cdf0e10cSrcweir 
132cdf0e10cSrcweir                     DECL_LINK( PauseTimeoutHdl, Timer* pTimer );
133cdf0e10cSrcweir                     DECL_LINK( MouseTimeoutHdl, Timer* pTimer );
134cdf0e10cSrcweir                     DECL_LINK( EventHdl, VclWindowEvent* pEvent );
135cdf0e10cSrcweir 
136cdf0e10cSrcweir     ::rtl::Reference< SlideshowImpl > mxController;
137cdf0e10cSrcweir };
138cdf0e10cSrcweir 
139cdf0e10cSrcweir } // end of namespace sd
140cdf0e10cSrcweir 
141cdf0e10cSrcweir #endif
142*9d97e963Smseidel 
143*9d97e963Smseidel /* vim: set noet sw=4 ts=4: */
144