VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/Graphics/Wine/include/uxtheme.h@ 30705

Last change on this file since 30705 was 16477, checked in by vboxsync, 16 years ago

LGPL disclaimer by filemuncher

  • Property svn:eol-style set to native
File size: 7.6 KB
Line 
1/*
2 * Win32 5.1 theme definitions
3 *
4 * Copyright (C) 2003 Kevin Koltzau
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21/*
22 * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
23 * other than GPL or LGPL is available it will apply instead, Sun elects to use only
24 * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
25 * a choice of LGPL license versions is made available with the language indicating
26 * that LGPLv2 or any later version may be used, or where a choice of which version
27 * of the LGPL is applied is otherwise unspecified.
28 */
29
30#ifndef __WINE_UXTHEME_H
31#define __WINE_UXTHEME_H
32
33#include <commctrl.h>
34
35typedef HANDLE HTHEME;
36
37HRESULT WINAPI CloseThemeData(HTHEME hTheme);
38HRESULT WINAPI DrawThemeBackground(HTHEME,HDC,int,int,const RECT*,const RECT*);
39
40#define DTBG_CLIPRECT 0x00000001
41#define DTBG_DRAWSOLID 0x00000002
42#define DTBG_OMITBORDER 0x00000004
43#define DTBG_OMITCONTENT 0x00000008
44#define DTBG_COMPUTINGREGION 0x00000010
45#define DTBG_MIRRORDC 0x00000020
46
47typedef struct _DTBGOPTS {
48 DWORD dwSize;
49 DWORD dwFlags;
50 RECT rcClip;
51} DTBGOPTS, *PDTBGOPTS;
52
53HRESULT WINAPI DrawThemeBackgroundEx(HTHEME,HDC,int,int,const RECT*,
54 const DTBGOPTS*);
55HRESULT WINAPI DrawThemeEdge(HTHEME,HDC,int,int,const RECT*,UINT,UINT,
56 RECT*);
57HRESULT WINAPI DrawThemeIcon(HTHEME,HDC,int,int,const RECT*,HIMAGELIST,int);
58HRESULT WINAPI DrawThemeParentBackground(HWND,HDC,RECT*);
59
60#define DTT_GRAYED 0x1
61
62HRESULT WINAPI DrawThemeText(HTHEME,HDC,int,int,LPCWSTR,int,DWORD,DWORD,
63 const RECT*);
64
65#define ETDT_DISABLE 0x00000001
66#define ETDT_ENABLE 0x00000002
67#define ETDT_USETABTEXTURE 0x00000004
68#define ETDT_ENABLETAB (ETDT_ENABLE|ETDT_USETABTEXTURE)
69
70HRESULT WINAPI EnableThemeDialogTexture(HWND,DWORD);
71HRESULT WINAPI EnableTheming(BOOL);
72HRESULT WINAPI GetCurrentThemeName(LPWSTR,int,LPWSTR,int,LPWSTR,int);
73
74#define STAP_ALLOW_NONCLIENT (1<<0)
75#define STAP_ALLOW_CONTROLS (1<<1)
76#define STAP_ALLOW_WEBCONTENT (1<<2)
77
78DWORD WINAPI GetThemeAppProperties(void);
79HRESULT WINAPI GetThemeBackgroundContentRect(HTHEME,HDC,int,int,
80 const RECT*,RECT*);
81HRESULT WINAPI GetThemeBackgroundExtent(HTHEME,HDC,int,int,const RECT*,RECT*);
82HRESULT WINAPI GetThemeBackgroundRegion(HTHEME,HDC,int,int,const RECT*,HRGN*);
83HRESULT WINAPI GetThemeBool(HTHEME,int,int,int,BOOL*);
84HRESULT WINAPI GetThemeColor(HTHEME,int,int,int,COLORREF*);
85
86#if defined(__GNUC__)
87# define SZ_THDOCPROP_DISPLAYNAME (const WCHAR []){ 'D','i','s','p','l','a','y','N','a','m','e',0 }
88# define SZ_THDOCPROP_CANONICALNAME (const WCHAR []){ 'T','h','e','m','e','N','a','m','e',0 }
89# define SZ_THDOCPROP_TOOLTIP (const WCHAR []){ 'T','o','o','l','T','i','p',0 }
90# define SZ_THDOCPROP_AUTHOR (const WCHAR []){ 'a','u','t','h','o','r',0 }
91#elif defined(_MSC_VER)
92# define SZ_THDOCPROP_DISPLAYNAME L"DisplayName"
93# define SZ_THDOCPROP_CANONICALNAME L"ThemeName"
94# define SZ_THDOCPROP_TOOLTIP L"ToolTip"
95# define SZ_THDOCPROP_AUTHOR L"author"
96#else
97static const WCHAR SZ_THDOCPROP_DISPLAYNAME[] = { 'D','i','s','p','l','a','y','N','a','m','e',0 };
98static const WCHAR SZ_THDOCPROP_CANONICALNAME[] = { 'T','h','e','m','e','N','a','m','e',0 };
99static const WCHAR SZ_THDOCPROP_TOOLTIP[] = { 'T','o','o','l','T','i','p',0 };
100static const WCHAR SZ_THDOCPROP_AUTHOR[] = { 'a','u','t','h','o','r',0 };
101#endif
102
103HRESULT WINAPI GetThemeDocumentationProperty(LPCWSTR,LPCWSTR,LPWSTR,int);
104HRESULT WINAPI GetThemeEnumValue(HTHEME,int,int,int,int*);
105HRESULT WINAPI GetThemeFilename(HTHEME,int,int,int,LPWSTR,int);
106HRESULT WINAPI GetThemeFont(HTHEME,HDC,int,int,int,LOGFONTW*);
107HRESULT WINAPI GetThemeInt(HTHEME,int,int,int,int*);
108
109#define MAX_INTLIST_COUNT 10
110typedef struct _INTLIST {
111 int iValueCount;
112 int iValues[MAX_INTLIST_COUNT];
113} INTLIST, *PINTLIST;
114
115HRESULT WINAPI GetThemeIntList(HTHEME,int,int,int,INTLIST*);
116
117typedef struct _MARGINS {
118 int cxLeftWidth;
119 int cxRightWidth;
120 int cyTopHeight;
121 int cyBottomHeight;
122} MARGINS, *PMARGINS;
123
124HRESULT WINAPI GetThemeMargins(HTHEME,HDC,int,int,int,RECT*,MARGINS*);
125HRESULT WINAPI GetThemeMetric(HTHEME,HDC,int,int,int,int*);
126
127typedef enum {
128 TS_MIN,
129 TS_TRUE,
130 TS_DRAW
131} THEMESIZE;
132
133HRESULT WINAPI GetThemePartSize(HTHEME,HDC,int,int,RECT*,THEMESIZE,SIZE*);
134HRESULT WINAPI GetThemePosition(HTHEME,int,int,int,POINT*);
135
136typedef enum {
137 PO_STATE,
138 PO_PART,
139 PO_CLASS,
140 PO_GLOBAL,
141 PO_NOTFOUND
142} PROPERTYORIGIN;
143
144HRESULT WINAPI GetThemePropertyOrigin(HTHEME,int,int,int,PROPERTYORIGIN*);
145HRESULT WINAPI GetThemeRect(HTHEME,int,int,int,RECT*);
146HRESULT WINAPI GetThemeString(HTHEME,int,int,int,LPWSTR,int);
147BOOL WINAPI GetThemeSysBool(HTHEME,int);
148COLORREF WINAPI GetThemeSysColor(HTHEME,int);
149HBRUSH WINAPI GetThemeSysColorBrush(HTHEME,int);
150HRESULT WINAPI GetThemeSysFont(HTHEME,int,LOGFONTW*);
151HRESULT WINAPI GetThemeSysInt(HTHEME,int,int*);
152int WINAPI GetThemeSysSize(HTHEME,int);
153HRESULT WINAPI GetThemeSysString(HTHEME,int,LPWSTR,int);
154HRESULT WINAPI GetThemeTextExtent(HTHEME,HDC,int,int,LPCWSTR,int,DWORD,
155 const RECT*,RECT*);
156HRESULT WINAPI GetThemeTextMetrics(HTHEME,HDC,int,int,TEXTMETRICW*);
157HTHEME WINAPI GetWindowTheme(HWND);
158
159#define HTTB_BACKGROUNDSEG 0x0000
160#define HTTB_FIXEDBORDER 0x0002
161#define HTTB_CAPTION 0x0004
162#define HTTB_RESIZINGBORDER_LEFT 0x0010
163#define HTTB_RESIZINGBORDER_TOP 0x0020
164#define HTTB_RESIZINGBORDER_RIGHT 0x0040
165#define HTTB_RESIZINGBORDER_BOTTOM 0x0080
166#define HTTB_RESIZINGBORDER \
167 (HTTB_RESIZINGBORDER_LEFT|HTTB_RESIZINGBORDER_TOP|\
168 HTTB_RESIZINGBORDER_RIGHT|HTTB_RESIZINGBORDER_BOTTOM)
169#define HTTB_SIZINGTEMPLATE 0x0100
170#define HTTB_SYSTEMSIZINGMARGINS 0x0200
171
172HRESULT WINAPI HitTestThemeBackground(HTHEME,HDC,int,int,DWORD,const RECT*,
173 HRGN,POINT,WORD*);
174BOOL WINAPI IsAppThemed(void);
175BOOL WINAPI IsThemeActive(void);
176BOOL WINAPI IsThemeBackgroundPartiallyTransparent(HTHEME,int,int);
177BOOL WINAPI IsThemeDialogTextureEnabled(HWND);
178BOOL WINAPI IsThemePartDefined(HTHEME,int,int);
179HTHEME WINAPI OpenThemeData(HWND,LPCWSTR);
180void WINAPI SetThemeAppProperties(DWORD);
181HRESULT WINAPI SetWindowTheme(HWND,LPCWSTR,LPCWSTR);
182
183
184/* Double-buffered Drawing API */
185
186typedef HANDLE HPAINTBUFFER;
187
188HRESULT WINAPI BufferedPaintInit(VOID);
189HRESULT WINAPI BufferedPaintUnInit(VOID);
190
191typedef enum _BP_BUFFERFORMAT
192{
193 BPBF_COMPATIBLEBITMAP,
194 BPBF_DIB,
195 BPBF_TOPDOWNDIB,
196 BPBF_TOPDOWNMONODIB
197} BP_BUFFERFORMAT;
198
199typedef struct _BP_PAINTPARAMS
200{
201 DWORD cbSize;
202 DWORD dwFlags;
203 const RECT *prcExclude;
204 const BLENDFUNCTION *pBlendFunction;
205} BP_PAINTPARAMS, *PBP_PAINTPARAMS;
206
207HPAINTBUFFER WINAPI BeginBufferedPaint(HDC, const RECT *, BP_BUFFERFORMAT,
208 BP_PAINTPARAMS *,HDC *);
209
210HRESULT WINAPI EndBufferedPaint(HPAINTBUFFER, BOOL);
211
212#endif
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette