Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenproperty.c
Go to the documentation of this file.
00001 /* 00002 * Win32 5.1 Theme properties 00003 * 00004 * Copyright (C) 2003 Kevin Koltzau 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public 00017 * License along with this library; if not, write to the Free Software 00018 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00019 */ 00020 00021 #include "uxthemep.h" 00022 #include "wine/debug.h" 00023 00024 WINE_DEFAULT_DEBUG_CHANNEL(uxtheme); 00025 00026 /*********************************************************************** 00027 * GetThemeBool (UXTHEME.@) 00028 */ 00029 HRESULT WINAPI GetThemeBool(HTHEME hTheme, int iPartId, int iStateId, 00030 int iPropId, BOOL *pfVal) 00031 { 00032 PTHEME_PROPERTY tp; 00033 00034 TRACE("(%d, %d, %d)\n", iPartId, iStateId, iPropId); 00035 if(!hTheme) 00036 return E_HANDLE; 00037 00038 if(!(tp = MSSTYLES_FindProperty(hTheme, iPartId, iStateId, TMT_BOOL, iPropId))) 00039 return E_PROP_ID_UNSUPPORTED; 00040 return MSSTYLES_GetPropertyBool(tp, pfVal); 00041 } 00042 00043 /*********************************************************************** 00044 * GetThemeColor (UXTHEME.@) 00045 */ 00046 HRESULT WINAPI GetThemeColor(HTHEME hTheme, int iPartId, int iStateId, 00047 int iPropId, COLORREF *pColor) 00048 { 00049 PTHEME_PROPERTY tp; 00050 00051 TRACE("(%d, %d, %d)\n", iPartId, iStateId, iPropId); 00052 if(!hTheme) 00053 return E_HANDLE; 00054 00055 if(!(tp = MSSTYLES_FindProperty(hTheme, iPartId, iStateId, TMT_COLOR, iPropId))) 00056 return E_PROP_ID_UNSUPPORTED; 00057 return MSSTYLES_GetPropertyColor(tp, pColor); 00058 } 00059 00060 /*********************************************************************** 00061 * GetThemeEnumValue (UXTHEME.@) 00062 */ 00063 HRESULT WINAPI GetThemeEnumValue(HTHEME hTheme, int iPartId, int iStateId, 00064 int iPropId, int *piVal) 00065 { 00066 HRESULT hr; 00067 WCHAR val[60]; 00068 PTHEME_PROPERTY tp; 00069 00070 TRACE("(%d, %d, %d)\n", iPartId, iStateId, iPropId); 00071 if(!hTheme) 00072 return E_HANDLE; 00073 00074 if(!(tp = MSSTYLES_FindProperty(hTheme, iPartId, iStateId, TMT_ENUM, iPropId))) 00075 return E_PROP_ID_UNSUPPORTED; 00076 00077 hr = MSSTYLES_GetPropertyString(tp, val, sizeof(val)/sizeof(val[0])); 00078 if(FAILED(hr)) 00079 return hr; 00080 if(!MSSTYLES_LookupEnum(val, iPropId, piVal)) 00081 return E_PROP_ID_UNSUPPORTED; 00082 return S_OK; 00083 } 00084 00085 /*********************************************************************** 00086 * GetThemeFilename (UXTHEME.@) 00087 */ 00088 HRESULT WINAPI GetThemeFilename(HTHEME hTheme, int iPartId, int iStateId, 00089 int iPropId, LPWSTR pszThemeFilename, 00090 int cchMaxBuffChars) 00091 { 00092 PTHEME_PROPERTY tp; 00093 00094 TRACE("(%d, %d, %d)\n", iPartId, iStateId, iPropId); 00095 if(!hTheme) 00096 return E_HANDLE; 00097 00098 if(!(tp = MSSTYLES_FindProperty(hTheme, iPartId, iStateId, TMT_FILENAME, iPropId))) 00099 return E_PROP_ID_UNSUPPORTED; 00100 return MSSTYLES_GetPropertyString(tp, pszThemeFilename, cchMaxBuffChars); 00101 } 00102 00103 /*********************************************************************** 00104 * GetThemeFont (UXTHEME.@) 00105 */ 00106 HRESULT WINAPI GetThemeFont(HTHEME hTheme, HDC hdc, int iPartId, 00107 int iStateId, int iPropId, LOGFONTW *pFont) 00108 { 00109 PTHEME_PROPERTY tp; 00110 00111 TRACE("(%d, %d, %d)\n", iPartId, iStateId, iPropId); 00112 if(!hTheme) 00113 return E_HANDLE; 00114 00115 if(!(tp = MSSTYLES_FindProperty(hTheme, iPartId, iStateId, TMT_FONT, iPropId))) 00116 return E_PROP_ID_UNSUPPORTED; 00117 return MSSTYLES_GetPropertyFont(tp, hdc, pFont); 00118 } 00119 00120 /*********************************************************************** 00121 * GetThemeInt (UXTHEME.@) 00122 */ 00123 HRESULT WINAPI GetThemeInt(HTHEME hTheme, int iPartId, int iStateId, 00124 int iPropId, int *piVal) 00125 { 00126 PTHEME_PROPERTY tp; 00127 00128 TRACE("(%d, %d, %d)\n", iPartId, iStateId, iPropId); 00129 if(!hTheme) 00130 return E_HANDLE; 00131 00132 if(!(tp = MSSTYLES_FindProperty(hTheme, iPartId, iStateId, TMT_INT, iPropId))) 00133 return E_PROP_ID_UNSUPPORTED; 00134 return MSSTYLES_GetPropertyInt(tp, piVal); 00135 } 00136 00137 /*********************************************************************** 00138 * GetThemeIntList (UXTHEME.@) 00139 */ 00140 HRESULT WINAPI GetThemeIntList(HTHEME hTheme, int iPartId, int iStateId, 00141 int iPropId, INTLIST *pIntList) 00142 { 00143 PTHEME_PROPERTY tp; 00144 00145 TRACE("(%d, %d, %d)\n", iPartId, iStateId, iPropId); 00146 if(!hTheme) 00147 return E_HANDLE; 00148 00149 if(!(tp = MSSTYLES_FindProperty(hTheme, iPartId, iStateId, TMT_INTLIST, iPropId))) 00150 return E_PROP_ID_UNSUPPORTED; 00151 return MSSTYLES_GetPropertyIntList(tp, pIntList); 00152 } 00153 00154 /*********************************************************************** 00155 * GetThemePosition (UXTHEME.@) 00156 */ 00157 HRESULT WINAPI GetThemePosition(HTHEME hTheme, int iPartId, int iStateId, 00158 int iPropId, POINT *pPoint) 00159 { 00160 PTHEME_PROPERTY tp; 00161 00162 TRACE("(%d, %d, %d)\n", iPartId, iStateId, iPropId); 00163 if(!hTheme) 00164 return E_HANDLE; 00165 00166 if(!(tp = MSSTYLES_FindProperty(hTheme, iPartId, iStateId, TMT_POSITION, iPropId))) 00167 return E_PROP_ID_UNSUPPORTED; 00168 return MSSTYLES_GetPropertyPosition(tp, pPoint); 00169 } 00170 00171 /*********************************************************************** 00172 * GetThemeRect (UXTHEME.@) 00173 */ 00174 HRESULT WINAPI GetThemeRect(HTHEME hTheme, int iPartId, int iStateId, 00175 int iPropId, RECT *pRect) 00176 { 00177 PTHEME_PROPERTY tp; 00178 00179 TRACE("(%d, %d, %d)\n", iPartId, iStateId, iPropId); 00180 if(!hTheme) 00181 return E_HANDLE; 00182 00183 if(!(tp = MSSTYLES_FindProperty(hTheme, iPartId, iStateId, TMT_RECT, iPropId))) 00184 return E_PROP_ID_UNSUPPORTED; 00185 return MSSTYLES_GetPropertyRect(tp, pRect); 00186 } 00187 00188 /*********************************************************************** 00189 * GetThemeString (UXTHEME.@) 00190 */ 00191 HRESULT WINAPI GetThemeString(HTHEME hTheme, int iPartId, int iStateId, 00192 int iPropId, LPWSTR pszBuff, int cchMaxBuffChars) 00193 { 00194 PTHEME_PROPERTY tp; 00195 00196 TRACE("(%d, %d, %d)\n", iPartId, iStateId, iPropId); 00197 if(!hTheme) 00198 return E_HANDLE; 00199 00200 if(!(tp = MSSTYLES_FindProperty(hTheme, iPartId, iStateId, TMT_FILENAME, iPropId))) 00201 return E_PROP_ID_UNSUPPORTED; 00202 return MSSTYLES_GetPropertyString(tp, pszBuff, cchMaxBuffChars); 00203 } 00204 00205 /*********************************************************************** 00206 * GetThemeMargins (UXTHEME.@) 00207 */ 00208 HRESULT WINAPI GetThemeMargins(HTHEME hTheme, HDC hdc, int iPartId, 00209 int iStateId, int iPropId, RECT *prc, 00210 MARGINS *pMargins) 00211 { 00212 PTHEME_PROPERTY tp; 00213 00214 TRACE("(%d, %d, %d)\n", iPartId, iStateId, iPropId); 00215 memset (pMargins, 0, sizeof (MARGINS)); 00216 if(!hTheme) 00217 return E_HANDLE; 00218 00219 if(!(tp = MSSTYLES_FindProperty(hTheme, iPartId, iStateId, TMT_MARGINS, iPropId))) 00220 return E_PROP_ID_UNSUPPORTED; 00221 return MSSTYLES_GetPropertyMargins(tp, prc, pMargins); 00222 } 00223 00224 /*********************************************************************** 00225 * GetThemeMetric (UXTHEME.@) 00226 */ 00227 HRESULT WINAPI GetThemeMetric(HTHEME hTheme, HDC hdc, int iPartId, 00228 int iStateId, int iPropId, int *piVal) 00229 { 00230 PTHEME_PROPERTY tp; 00231 WCHAR val[60]; 00232 HRESULT hr; 00233 00234 TRACE("(%d, %d, %d)\n", iPartId, iStateId, iPropId); 00235 if(!hTheme) 00236 return E_HANDLE; 00237 00238 if(!(tp = MSSTYLES_FindProperty(hTheme, iPartId, iStateId, 0, iPropId))) 00239 return E_PROP_ID_UNSUPPORTED; 00240 switch(tp->iPrimitiveType) { 00241 case TMT_POSITION: /* Only the X coord is retrieved */ 00242 case TMT_MARGINS: /* Only the cxLeftWidth member is retrieved */ 00243 case TMT_INTLIST: /* Only the first int is retrieved */ 00244 case TMT_SIZE: 00245 case TMT_INT: 00246 return MSSTYLES_GetPropertyInt(tp, piVal); 00247 case TMT_BOOL: 00248 return MSSTYLES_GetPropertyBool(tp, piVal); 00249 case TMT_COLOR: 00250 return MSSTYLES_GetPropertyColor(tp, (COLORREF*)piVal); 00251 case TMT_ENUM: 00252 hr = MSSTYLES_GetPropertyString(tp, val, sizeof(val)/sizeof(val[0])); 00253 if(FAILED(hr)) 00254 return hr; 00255 if(!MSSTYLES_LookupEnum(val, iPropId, piVal)) 00256 return E_PROP_ID_UNSUPPORTED; 00257 return S_OK; 00258 case TMT_FILENAME: 00259 /* Windows does return a value for this, but its value doesn't make sense */ 00260 FIXME("Filename\n"); 00261 break; 00262 } 00263 return E_PROP_ID_UNSUPPORTED; 00264 } 00265 00266 /*********************************************************************** 00267 * GetThemePropertyOrigin (UXTHEME.@) 00268 */ 00269 HRESULT WINAPI GetThemePropertyOrigin(HTHEME hTheme, int iPartId, int iStateId, 00270 int iPropId, PROPERTYORIGIN *pOrigin) 00271 { 00272 PTHEME_PROPERTY tp; 00273 00274 TRACE("(%d, %d, %d)\n", iPartId, iStateId, iPropId); 00275 if(!hTheme) 00276 return E_HANDLE; 00277 00278 if(!(tp = MSSTYLES_FindProperty(hTheme, iPartId, iStateId, 0, iPropId))) { 00279 *pOrigin = PO_NOTFOUND; 00280 return S_OK; 00281 } 00282 *pOrigin = tp->origin; 00283 return S_OK; 00284 } Generated on Sun May 27 2012 04:21:44 for ReactOS by
1.7.6.1
|