]> git.sesse.net Git - vlc/blob - modules/gui/skins/win32/win32_window.h
880285c586fff2e4f95e7f17bd0e315df0d51fd5
[vlc] / modules / gui / skins / win32 / win32_window.h
1 /*****************************************************************************
2  * win32_window.h: Win32 implementation of the Window class
3  *****************************************************************************
4  * Copyright (C) 2003 VideoLAN
5  * $Id: win32_window.h,v 1.4 2003/10/17 18:17:28 ipkiss Exp $
6  *
7  * Authors: Olivier Teulière <ipkiss@via.ecp.fr>
8  *          Emmanuel Puig    <karibu@via.ecp.fr>
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111,
23  * USA.
24  *****************************************************************************/
25
26 #ifdef WIN32
27
28 #ifndef VLC_SKIN_WIN32_WIN
29 #define VLC_SKIN_WIN32_WIN
30
31 //--- WIN32 -----------------------------------------------------------------
32 #include <commctrl.h>
33
34 //---------------------------------------------------------------------------
35 class Graphics;
36 class Event;
37
38 //---------------------------------------------------------------------------
39 class Win32Window : public SkinWindow
40 {
41     private:
42         // General parameters
43         HWND hWnd;
44         LPPOINT CursorPos;
45         LPPOINT WindowPos;
46
47         // Tooltip texts
48         HWND ToolTipWindow;
49         TOOLINFO ToolTipInfo;
50
51         // Drag & drop
52         LPDROPTARGET DropTarget;
53
54     public:
55         // Cosntructors
56         Win32Window( intf_thread_t *_p_intf, HWND hwnd, int x, int y,
57             bool visible, int transition, int normalalpha, int movealpha,
58             bool dragdrop );
59
60         // Destructors
61         virtual ~Win32Window();
62
63         // Event processing
64         virtual bool ProcessOSEvent( Event *evt );
65
66         // Window graphic aspect
67         virtual void ToggleOnTop();
68         virtual void OSShow( bool show );
69         virtual void RefreshFromImage( int x, int y, int w, int h );
70         virtual void SetTransparency( int Value = -1 );
71         virtual void WindowManualMove();
72         virtual void WindowManualMoveInit();
73
74         // Window methods
75         virtual void Move( int left, int top );
76         virtual void Size( int width, int height );
77
78         // Specific win32 methods
79         HWND GetHandle() {return hWnd; };
80
81         // Tooltip texts
82         virtual void ChangeToolTipText( string text );
83 };
84 //---------------------------------------------------------------------------
85
86 #endif
87
88 #endif