| 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 | #ifndef __WINE_UXTHEME_H
|
|---|
| 22 | #define __WINE_UXTHEME_H
|
|---|
| 23 |
|
|---|
| 24 | #include <commctrl.h>
|
|---|
| 25 |
|
|---|
| 26 | typedef HANDLE HTHEME;
|
|---|
| 27 |
|
|---|
| 28 | HRESULT WINAPI CloseThemeData(HTHEME hTheme);
|
|---|
| 29 | HRESULT WINAPI DrawThemeBackground(HTHEME,HDC,int,int,const RECT*,const RECT*);
|
|---|
| 30 |
|
|---|
| 31 | #define DTBG_CLIPRECT 0x00000001
|
|---|
| 32 | #define DTBG_DRAWSOLID 0x00000002
|
|---|
| 33 | #define DTBG_OMITBORDER 0x00000004
|
|---|
| 34 | #define DTBG_OMITCONTENT 0x00000008
|
|---|
| 35 | #define DTBG_COMPUTINGREGION 0x00000010
|
|---|
| 36 | #define DTBG_MIRRORDC 0x00000020
|
|---|
| 37 |
|
|---|
| 38 | typedef struct _DTBGOPTS {
|
|---|
| 39 | DWORD dwSize;
|
|---|
| 40 | DWORD dwFlags;
|
|---|
| 41 | RECT rcClip;
|
|---|
| 42 | } DTBGOPTS, *PDTBGOPTS;
|
|---|
| 43 |
|
|---|
| 44 | HRESULT WINAPI DrawThemeBackgroundEx(HTHEME,HDC,int,int,const RECT*,
|
|---|
| 45 | const DTBGOPTS*);
|
|---|
| 46 | HRESULT WINAPI DrawThemeEdge(HTHEME,HDC,int,int,const RECT*,UINT,UINT,
|
|---|
| 47 | RECT*);
|
|---|
| 48 | HRESULT WINAPI DrawThemeIcon(HTHEME,HDC,int,int,const RECT*,HIMAGELIST,int);
|
|---|
| 49 | HRESULT WINAPI DrawThemeParentBackground(HWND,HDC,RECT*);
|
|---|
| 50 |
|
|---|
| 51 | #define DTT_GRAYED 0x1
|
|---|
| 52 |
|
|---|
| 53 | HRESULT WINAPI DrawThemeText(HTHEME,HDC,int,int,LPCWSTR,int,DWORD,DWORD,
|
|---|
| 54 | const RECT*);
|
|---|
| 55 |
|
|---|
| 56 | #define ETDT_DISABLE 0x00000001
|
|---|
| 57 | #define ETDT_ENABLE 0x00000002
|
|---|
| 58 | #define ETDT_USETABTEXTURE 0x00000004
|
|---|
| 59 | #define ETDT_ENABLETAB (ETDT_ENABLE|ETDT_USETABTEXTURE)
|
|---|
| 60 |
|
|---|
| 61 | HRESULT WINAPI EnableThemeDialogTexture(HWND,DWORD);
|
|---|
| 62 | HRESULT WINAPI EnableTheming(BOOL);
|
|---|
| 63 | HRESULT WINAPI GetCurrentThemeName(LPWSTR,int,LPWSTR,int,LPWSTR,int);
|
|---|
| 64 |
|
|---|
| 65 | #define STAP_ALLOW_NONCLIENT (1<<0)
|
|---|
| 66 | #define STAP_ALLOW_CONTROLS (1<<1)
|
|---|
| 67 | #define STAP_ALLOW_WEBCONTENT (1<<2)
|
|---|
| 68 |
|
|---|
| 69 | DWORD WINAPI GetThemeAppProperties(void);
|
|---|
| 70 | HRESULT WINAPI GetThemeBackgroundContentRect(HTHEME,HDC,int,int,
|
|---|
| 71 | const RECT*,RECT*);
|
|---|
| 72 | HRESULT WINAPI GetThemeBackgroundExtent(HTHEME,HDC,int,int,const RECT*,RECT*);
|
|---|
| 73 | HRESULT WINAPI GetThemeBackgroundRegion(HTHEME,HDC,int,int,const RECT*,HRGN*);
|
|---|
| 74 | HRESULT WINAPI GetThemeBool(HTHEME,int,int,int,BOOL*);
|
|---|
| 75 | HRESULT WINAPI GetThemeColor(HTHEME,int,int,int,COLORREF*);
|
|---|
| 76 |
|
|---|
| 77 | #if defined(__GNUC__)
|
|---|
| 78 | # define SZ_THDOCPROP_DISPLAYNAME (const WCHAR []){ 'D','i','s','p','l','a','y','N','a','m','e',0 }
|
|---|
| 79 | # define SZ_THDOCPROP_CANONICALNAME (const WCHAR []){ 'T','h','e','m','e','N','a','m','e',0 }
|
|---|
| 80 | # define SZ_THDOCPROP_TOOLTIP (const WCHAR []){ 'T','o','o','l','T','i','p',0 }
|
|---|
| 81 | # define SZ_THDOCPROP_AUTHOR (const WCHAR []){ 'a','u','t','h','o','r',0 }
|
|---|
| 82 | #elif defined(_MSC_VER)
|
|---|
| 83 | # define SZ_THDOCPROP_DISPLAYNAME L"DisplayName"
|
|---|
| 84 | # define SZ_THDOCPROP_CANONICALNAME L"ThemeName"
|
|---|
| 85 | # define SZ_THDOCPROP_TOOLTIP L"ToolTip"
|
|---|
| 86 | # define SZ_THDOCPROP_AUTHOR L"author"
|
|---|
| 87 | #else
|
|---|
| 88 | static const WCHAR SZ_THDOCPROP_DISPLAYNAME[] = { 'D','i','s','p','l','a','y','N','a','m','e',0 };
|
|---|
| 89 | static const WCHAR SZ_THDOCPROP_CANONICALNAME[] = { 'T','h','e','m','e','N','a','m','e',0 };
|
|---|
| 90 | static const WCHAR SZ_THDOCPROP_TOOLTIP[] = { 'T','o','o','l','T','i','p',0 };
|
|---|
| 91 | static const WCHAR SZ_THDOCPROP_AUTHOR[] = { 'a','u','t','h','o','r',0 };
|
|---|
| 92 | #endif
|
|---|
| 93 |
|
|---|
| 94 | HRESULT WINAPI GetThemeDocumentationProperty(LPCWSTR,LPCWSTR,LPWSTR,int);
|
|---|
| 95 | HRESULT WINAPI GetThemeEnumValue(HTHEME,int,int,int,int*);
|
|---|
| 96 | HRESULT WINAPI GetThemeFilename(HTHEME,int,int,int,LPWSTR,int);
|
|---|
| 97 | HRESULT WINAPI GetThemeFont(HTHEME,HDC,int,int,int,LOGFONTW*);
|
|---|
| 98 | HRESULT WINAPI GetThemeInt(HTHEME,int,int,int,int*);
|
|---|
| 99 |
|
|---|
| 100 | #define MAX_INTLIST_COUNT 10
|
|---|
| 101 | typedef struct _INTLIST {
|
|---|
| 102 | int iValueCount;
|
|---|
| 103 | int iValues[MAX_INTLIST_COUNT];
|
|---|
| 104 | } INTLIST, *PINTLIST;
|
|---|
| 105 |
|
|---|
| 106 | HRESULT WINAPI GetThemeIntList(HTHEME,int,int,int,INTLIST*);
|
|---|
| 107 |
|
|---|
| 108 | typedef struct _MARGINS {
|
|---|
| 109 | int cxLeftWidth;
|
|---|
| 110 | int cxRightWidth;
|
|---|
| 111 | int cyTopHeight;
|
|---|
| 112 | int cyBottomHeight;
|
|---|
| 113 | } MARGINS, *PMARGINS;
|
|---|
| 114 |
|
|---|
| 115 | HRESULT WINAPI GetThemeMargins(HTHEME,HDC,int,int,int,RECT*,MARGINS*);
|
|---|
| 116 | HRESULT WINAPI GetThemeMetric(HTHEME,HDC,int,int,int,int*);
|
|---|
| 117 |
|
|---|
| 118 | typedef enum {
|
|---|
| 119 | TS_MIN,
|
|---|
| 120 | TS_TRUE,
|
|---|
| 121 | TS_DRAW
|
|---|
| 122 | } THEMESIZE;
|
|---|
| 123 |
|
|---|
| 124 | HRESULT WINAPI GetThemePartSize(HTHEME,HDC,int,int,RECT*,THEMESIZE,SIZE*);
|
|---|
| 125 | HRESULT WINAPI GetThemePosition(HTHEME,int,int,int,POINT*);
|
|---|
| 126 |
|
|---|
| 127 | typedef enum {
|
|---|
| 128 | PO_STATE,
|
|---|
| 129 | PO_PART,
|
|---|
| 130 | PO_CLASS,
|
|---|
| 131 | PO_GLOBAL,
|
|---|
| 132 | PO_NOTFOUND
|
|---|
| 133 | } PROPERTYORIGIN;
|
|---|
| 134 |
|
|---|
| 135 | HRESULT WINAPI GetThemePropertyOrigin(HTHEME,int,int,int,PROPERTYORIGIN*);
|
|---|
| 136 | HRESULT WINAPI GetThemeRect(HTHEME,int,int,int,RECT*);
|
|---|
| 137 | HRESULT WINAPI GetThemeString(HTHEME,int,int,int,LPWSTR,int);
|
|---|
| 138 | BOOL WINAPI GetThemeSysBool(HTHEME,int);
|
|---|
| 139 | COLORREF WINAPI GetThemeSysColor(HTHEME,int);
|
|---|
| 140 | HBRUSH WINAPI GetThemeSysColorBrush(HTHEME,int);
|
|---|
| 141 | HRESULT WINAPI GetThemeSysFont(HTHEME,int,LOGFONTW*);
|
|---|
| 142 | HRESULT WINAPI GetThemeSysInt(HTHEME,int,int*);
|
|---|
| 143 | int WINAPI GetThemeSysSize(HTHEME,int);
|
|---|
| 144 | HRESULT WINAPI GetThemeSysString(HTHEME,int,LPWSTR,int);
|
|---|
| 145 | HRESULT WINAPI GetThemeTextExtent(HTHEME,HDC,int,int,LPCWSTR,int,DWORD,
|
|---|
| 146 | const RECT*,RECT*);
|
|---|
| 147 | HRESULT WINAPI GetThemeTextMetrics(HTHEME,HDC,int,int,TEXTMETRICW*);
|
|---|
| 148 | HTHEME WINAPI GetWindowTheme(HWND);
|
|---|
| 149 |
|
|---|
| 150 | #define HTTB_BACKGROUNDSEG 0x0000
|
|---|
| 151 | #define HTTB_FIXEDBORDER 0x0002
|
|---|
| 152 | #define HTTB_CAPTION 0x0004
|
|---|
| 153 | #define HTTB_RESIZINGBORDER_LEFT 0x0010
|
|---|
| 154 | #define HTTB_RESIZINGBORDER_TOP 0x0020
|
|---|
| 155 | #define HTTB_RESIZINGBORDER_RIGHT 0x0040
|
|---|
| 156 | #define HTTB_RESIZINGBORDER_BOTTOM 0x0080
|
|---|
| 157 | #define HTTB_RESIZINGBORDER \
|
|---|
| 158 | (HTTB_RESIZINGBORDER_LEFT|HTTB_RESIZINGBORDER_TOP|\
|
|---|
| 159 | HTTB_RESIZINGBORDER_RIGHT|HTTB_RESIZINGBORDER_BOTTOM)
|
|---|
| 160 | #define HTTB_SIZINGTEMPLATE 0x0100
|
|---|
| 161 | #define HTTB_SYSTEMSIZINGMARGINS 0x0200
|
|---|
| 162 |
|
|---|
| 163 | #define OTD_FORCE_RECT_SIZING 0x0001
|
|---|
| 164 | #define OTD_NONCLIENT 0x0002
|
|---|
| 165 | #define OTD_VALIDBITS (OTD_FORCE_RECT_SIZING | OTD_NONCLIENT)
|
|---|
| 166 |
|
|---|
| 167 | HRESULT WINAPI HitTestThemeBackground(HTHEME,HDC,int,int,DWORD,const RECT*,
|
|---|
| 168 | HRGN,POINT,WORD*);
|
|---|
| 169 | BOOL WINAPI IsAppThemed(void);
|
|---|
| 170 | BOOL WINAPI IsThemeActive(void);
|
|---|
| 171 | BOOL WINAPI IsThemeBackgroundPartiallyTransparent(HTHEME,int,int);
|
|---|
| 172 | BOOL WINAPI IsThemeDialogTextureEnabled(HWND);
|
|---|
| 173 | BOOL WINAPI IsThemePartDefined(HTHEME,int,int);
|
|---|
| 174 | HTHEME WINAPI OpenThemeData(HWND,LPCWSTR);
|
|---|
| 175 | HTHEME WINAPI OpenThemeDataEx(HWND,LPCWSTR,DWORD);
|
|---|
| 176 | void WINAPI SetThemeAppProperties(DWORD);
|
|---|
| 177 | HRESULT WINAPI SetWindowTheme(HWND,LPCWSTR,LPCWSTR);
|
|---|
| 178 |
|
|---|
| 179 |
|
|---|
| 180 | /* Double-buffered Drawing API */
|
|---|
| 181 |
|
|---|
| 182 | typedef HANDLE HPAINTBUFFER;
|
|---|
| 183 |
|
|---|
| 184 | HRESULT WINAPI BufferedPaintInit(VOID);
|
|---|
| 185 | HRESULT WINAPI BufferedPaintUnInit(VOID);
|
|---|
| 186 |
|
|---|
| 187 | typedef enum _BP_BUFFERFORMAT
|
|---|
| 188 | {
|
|---|
| 189 | BPBF_COMPATIBLEBITMAP,
|
|---|
| 190 | BPBF_DIB,
|
|---|
| 191 | BPBF_TOPDOWNDIB,
|
|---|
| 192 | BPBF_TOPDOWNMONODIB
|
|---|
| 193 | } BP_BUFFERFORMAT;
|
|---|
| 194 |
|
|---|
| 195 | typedef struct _BP_PAINTPARAMS
|
|---|
| 196 | {
|
|---|
| 197 | DWORD cbSize;
|
|---|
| 198 | DWORD dwFlags;
|
|---|
| 199 | const RECT *prcExclude;
|
|---|
| 200 | const BLENDFUNCTION *pBlendFunction;
|
|---|
| 201 | } BP_PAINTPARAMS, *PBP_PAINTPARAMS;
|
|---|
| 202 |
|
|---|
| 203 | HPAINTBUFFER WINAPI BeginBufferedPaint(HDC, const RECT *, BP_BUFFERFORMAT,
|
|---|
| 204 | BP_PAINTPARAMS *,HDC *);
|
|---|
| 205 |
|
|---|
| 206 | HRESULT WINAPI EndBufferedPaint(HPAINTBUFFER, BOOL);
|
|---|
| 207 |
|
|---|
| 208 | #endif
|
|---|