2 * Internal msstyles related defines & declarations
4 * Copyright (C) 2003 Kevin Koltzau
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.
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.
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
21 #ifndef __WINE_MSSTYLES_H
22 #define __WINE_MSSTYLES_H
26 #define MAX_THEME_APP_NAME 60
27 #define MAX_THEME_CLASS_NAME 60
28 #define MAX_THEME_VALUE_NAME 60
30 typedef struct _THEME_PROPERTY
{
33 PROPERTYORIGIN origin
;
38 struct _THEME_PROPERTY
*next
;
39 } THEME_PROPERTY
, *PTHEME_PROPERTY
;
41 typedef struct _THEME_PARTSTATE
{
44 PTHEME_PROPERTY properties
;
46 struct _THEME_PARTSTATE
*next
;
47 } THEME_PARTSTATE
, *PTHEME_PARTSTATE
;
51 typedef struct _THEME_CLASS
{
53 struct _THEME_FILE
* tf
;
54 WCHAR szAppName
[MAX_THEME_APP_NAME
];
55 WCHAR szClassName
[MAX_THEME_CLASS_NAME
];
56 PTHEME_PARTSTATE partstate
;
57 struct _THEME_CLASS
*overrides
;
59 struct _THEME_CLASS
*next
;
60 } THEME_CLASS
, *PTHEME_CLASS
;
62 typedef struct _THEME_IMAGE
{
67 struct _THEME_IMAGE
*next
;
68 } THEME_IMAGE
, *PTHEME_IMAGE
;
70 typedef struct _THEME_FILE
{
73 WCHAR szThemeFile
[MAX_PATH
];
74 LPWSTR pszAvailColors
;
77 LPWSTR pszSelectedColor
;
78 LPWSTR pszSelectedSize
;
81 PTHEME_PROPERTY metrics
;
83 } THEME_FILE
, *PTHEME_FILE
;
85 typedef struct _UXINI_FILE
*PUXINI_FILE
;
87 HRESULT
MSSTYLES_OpenThemeFile(LPCWSTR lpThemeFile
, LPCWSTR pszColorName
, LPCWSTR pszSizeName
, PTHEME_FILE
*tf
);
88 void MSSTYLES_CloseThemeFile(PTHEME_FILE tf
);
89 HRESULT
MSSTYLES_SetActiveTheme(PTHEME_FILE tf
, BOOL setMetrics
);
90 PTHEME_CLASS
MSSTYLES_OpenThemeClass(LPCWSTR pszAppName
, LPCWSTR pszClassList
);
91 HRESULT
MSSTYLES_CloseThemeClass(PTHEME_CLASS tc
);
92 BOOL
MSSTYLES_LookupProperty(LPCWSTR pszPropertyName
, int *dwPrimitive
, int *dwId
);
93 BOOL
MSSTYLES_LookupEnum(LPCWSTR pszValueName
, int dwEnum
, int *dwValue
);
94 BOOL
MSSTYLES_LookupPartState(LPCWSTR pszClass
, LPCWSTR pszPart
, LPCWSTR pszState
, int *iPartId
, int *iStateId
);
95 PUXINI_FILE
MSSTYLES_GetThemeIni(PTHEME_FILE tf
);
96 PTHEME_PARTSTATE
MSSTYLES_FindPartState(PTHEME_CLASS tc
, int iPartId
, int iStateId
, PTHEME_CLASS
*tcNext
);
97 PTHEME_PROPERTY
MSSTYLES_FindProperty(PTHEME_CLASS tc
, int iPartId
, int iStateId
, int iPropertyPrimitive
, int iPropertyId
);
98 PTHEME_PROPERTY
MSSTYLES_FindMetric(int iPropertyPrimitive
, int iPropertyId
);
99 HBITMAP
MSSTYLES_LoadBitmap(PTHEME_CLASS tc
, LPCWSTR lpFilename
, BOOL
* hasAlpha
);
101 HRESULT
MSSTYLES_GetPropertyBool(PTHEME_PROPERTY tp
, BOOL
*pfVal
);
102 HRESULT
MSSTYLES_GetPropertyColor(PTHEME_PROPERTY tp
, COLORREF
*pColor
);
103 HRESULT
MSSTYLES_GetPropertyFont(PTHEME_PROPERTY tp
, HDC hdc
, LOGFONTW
*pFont
);
104 HRESULT
MSSTYLES_GetPropertyInt(PTHEME_PROPERTY tp
, int *piVal
);
105 HRESULT
MSSTYLES_GetPropertyIntList(PTHEME_PROPERTY tp
, INTLIST
*pIntList
);
106 HRESULT
MSSTYLES_GetPropertyPosition(PTHEME_PROPERTY tp
, POINT
*pPoint
);
107 HRESULT
MSSTYLES_GetPropertyString(PTHEME_PROPERTY tp
, LPWSTR pszBuff
, int cchMaxBuffChars
);
108 HRESULT
MSSTYLES_GetPropertyRect(PTHEME_PROPERTY tp
, RECT
*pRect
);
109 HRESULT
MSSTYLES_GetPropertyMargins(PTHEME_PROPERTY tp
, RECT
*prc
, MARGINS
*pMargins
);
111 PUXINI_FILE
UXINI_LoadINI(HMODULE hTheme
, LPCWSTR lpName
);
112 void UXINI_CloseINI(PUXINI_FILE uf
);
113 LPCWSTR
UXINI_GetNextSection(PUXINI_FILE uf
, DWORD
*dwLen
);
114 BOOL
UXINI_FindSection(PUXINI_FILE uf
, LPCWSTR lpName
);
115 LPCWSTR
UXINI_GetNextValue(PUXINI_FILE uf
, DWORD
*dwNameLen
, LPCWSTR
*lpValue
, DWORD
*dwValueLen
);
116 BOOL
UXINI_FindValue(PUXINI_FILE uf
, LPCWSTR lpName
, LPCWSTR
*lpValue
, DWORD
*dwValueLen
);