1*ebfcd9afSAndrew Rist /**************************************************************
2*ebfcd9afSAndrew Rist  *
3*ebfcd9afSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*ebfcd9afSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*ebfcd9afSAndrew Rist  * distributed with this work for additional information
6*ebfcd9afSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*ebfcd9afSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*ebfcd9afSAndrew Rist  * "License"); you may not use this file except in compliance
9*ebfcd9afSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*ebfcd9afSAndrew Rist  *
11*ebfcd9afSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*ebfcd9afSAndrew Rist  *
13*ebfcd9afSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*ebfcd9afSAndrew Rist  * software distributed under the License is distributed on an
15*ebfcd9afSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*ebfcd9afSAndrew Rist  * KIND, either express or implied.  See the License for the
17*ebfcd9afSAndrew Rist  * specific language governing permissions and limitations
18*ebfcd9afSAndrew Rist  * under the License.
19*ebfcd9afSAndrew Rist  *
20*ebfcd9afSAndrew Rist  *************************************************************/
21*ebfcd9afSAndrew Rist 
22*ebfcd9afSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _AVMEDIA_MEDIAWINDOW_IMPL_HXX
25cdf0e10cSrcweir #define _AVMEDIA_MEDIAWINDOW_IMPL_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <svtools/transfer.hxx>
28cdf0e10cSrcweir #include <vcl/syschild.hxx>
29cdf0e10cSrcweir 
30cdf0e10cSrcweir #include "mediawindowbase_impl.hxx"
31cdf0e10cSrcweir #include "mediacontrol.hxx"
32cdf0e10cSrcweir 
33cdf0e10cSrcweir class BitmapEx;
34cdf0e10cSrcweir 
35cdf0e10cSrcweir namespace avmedia
36cdf0e10cSrcweir {
37cdf0e10cSrcweir     namespace priv
38cdf0e10cSrcweir     {
39cdf0e10cSrcweir 		// ----------------------
40cdf0e10cSrcweir 		// - MediaWindowControl -
41cdf0e10cSrcweir 		// ----------------------
42cdf0e10cSrcweir 
43cdf0e10cSrcweir 		class MediaWindowControl : public MediaControl
44cdf0e10cSrcweir 		{
45cdf0e10cSrcweir 		public:
46cdf0e10cSrcweir 
47cdf0e10cSrcweir 					MediaWindowControl( Window* pParent );
48cdf0e10cSrcweir 					~MediaWindowControl();
49cdf0e10cSrcweir 
50cdf0e10cSrcweir 		protected:
51cdf0e10cSrcweir 
52cdf0e10cSrcweir 			void 	update();
53cdf0e10cSrcweir 			void 	execute( const MediaItem& rItem );
54cdf0e10cSrcweir 		};
55cdf0e10cSrcweir 
56cdf0e10cSrcweir 		// --------------------
57cdf0e10cSrcweir 		// - MediaChildWindow -
58cdf0e10cSrcweir 		// --------------------
59cdf0e10cSrcweir 
60cdf0e10cSrcweir 		class MediaChildWindow : public SystemChildWindow
61cdf0e10cSrcweir 		{
62cdf0e10cSrcweir 		public:
63cdf0e10cSrcweir 
64cdf0e10cSrcweir 							MediaChildWindow( Window* pParent );
65cdf0e10cSrcweir 							~MediaChildWindow();
66cdf0e10cSrcweir 
67cdf0e10cSrcweir 		protected:
68cdf0e10cSrcweir 
69cdf0e10cSrcweir             virtual void    MouseMove( const MouseEvent& rMEvt );
70cdf0e10cSrcweir             virtual void    MouseButtonDown( const MouseEvent& rMEvt );
71cdf0e10cSrcweir             virtual void    MouseButtonUp( const MouseEvent& rMEvt );
72cdf0e10cSrcweir             virtual void    KeyInput( const KeyEvent& rKEvt );
73cdf0e10cSrcweir             virtual void    KeyUp( const KeyEvent& rKEvt );
74cdf0e10cSrcweir             virtual void    Command( const CommandEvent& rCEvt );
75cdf0e10cSrcweir 		};
76cdf0e10cSrcweir 
77cdf0e10cSrcweir         // ------------------.
78cdf0e10cSrcweir         // - MediaWindowImpl -
79cdf0e10cSrcweir         // -------------------
80cdf0e10cSrcweir 
81cdf0e10cSrcweir         class MediaEventListenersImpl;
82cdf0e10cSrcweir 
83cdf0e10cSrcweir         class MediaWindowImpl : public Control,
84cdf0e10cSrcweir                                 public MediaWindowBaseImpl,
85cdf0e10cSrcweir                                 public DropTargetHelper,
86cdf0e10cSrcweir                                 public DragSourceHelper
87cdf0e10cSrcweir 
88cdf0e10cSrcweir         {
89cdf0e10cSrcweir         public:
90cdf0e10cSrcweir 
91cdf0e10cSrcweir                             MediaWindowImpl( Window* parent, MediaWindow* pMediaWindow, bool bInternalMediaControl );
92cdf0e10cSrcweir             virtual         ~MediaWindowImpl();
93cdf0e10cSrcweir 
94cdf0e10cSrcweir             virtual void    cleanUp();
95cdf0e10cSrcweir 			virtual void	onURLChanged();
96cdf0e10cSrcweir 
97cdf0e10cSrcweir 		public:
98cdf0e10cSrcweir 
99cdf0e10cSrcweir 			void			update();
100cdf0e10cSrcweir 
101cdf0e10cSrcweir             void    		setPosSize( const Rectangle& rRect );
102cdf0e10cSrcweir 
103cdf0e10cSrcweir 			void			setPointer( const Pointer& rPointer );
104cdf0e10cSrcweir 			const Pointer&	getPointer() const;
105cdf0e10cSrcweir 
106cdf0e10cSrcweir 			bool			hasInternalMediaControl() const;
107cdf0e10cSrcweir 
108cdf0e10cSrcweir         protected:
109cdf0e10cSrcweir 
110cdf0e10cSrcweir             // Window
111cdf0e10cSrcweir             virtual void    MouseMove( const MouseEvent& rMEvt );
112cdf0e10cSrcweir             virtual void    MouseButtonDown( const MouseEvent& rMEvt );
113cdf0e10cSrcweir             virtual void    MouseButtonUp( const MouseEvent& rMEvt );
114cdf0e10cSrcweir             virtual void    KeyInput( const KeyEvent& rKEvt );
115cdf0e10cSrcweir             virtual void    KeyUp( const KeyEvent& rKEvt );
116cdf0e10cSrcweir             virtual void    Command( const CommandEvent& rCEvt );
117cdf0e10cSrcweir             virtual void    Resize();
118cdf0e10cSrcweir             virtual void    StateChanged( StateChangedType );
119cdf0e10cSrcweir             virtual void    Paint( const Rectangle& ); // const
120cdf0e10cSrcweir             virtual void    GetFocus();
121cdf0e10cSrcweir 
122cdf0e10cSrcweir             // DropTargetHelper
123cdf0e10cSrcweir 	        virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt );
124cdf0e10cSrcweir         	virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt );
125cdf0e10cSrcweir 
126cdf0e10cSrcweir             // DragSourceHelper
127cdf0e10cSrcweir         	virtual void    StartDrag( sal_Int8 nAction, const Point& rPosPixel );
128cdf0e10cSrcweir 
129cdf0e10cSrcweir         private:
130cdf0e10cSrcweir 
131cdf0e10cSrcweir 			::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >	mxEventsIf;
132cdf0e10cSrcweir             MediaEventListenersImpl*                                                mpEvents;
133cdf0e10cSrcweir 			MediaChildWindow														maChildWindow;
134cdf0e10cSrcweir 			MediaWindowControl*														mpMediaWindowControl;
135cdf0e10cSrcweir 			BitmapEx*																mpEmptyBmpEx;
136cdf0e10cSrcweir 			BitmapEx*																mpAudioBmpEx;
137cdf0e10cSrcweir         };
138cdf0e10cSrcweir     }
139cdf0e10cSrcweir }
140cdf0e10cSrcweir 
141cdf0e10cSrcweir #endif
142