Author: gadamopoulos Date: Tue Sep 20 13:08:36 2011 New Revision: 53771
URL: http://svn.reactos.org/svn/reactos?rev=53771&view=rev Log: [uxtheme] - Use precompiled headers
Added: trunk/reactos/dll/win32/uxtheme/uxthemep.h (with props) Removed: trunk/reactos/dll/win32/uxtheme/msstyles.h trunk/reactos/dll/win32/uxtheme/ncthm.h trunk/reactos/dll/win32/uxtheme/uxthemedll.h Modified: trunk/reactos/dll/win32/uxtheme/CMakeLists.txt trunk/reactos/dll/win32/uxtheme/buffer.c trunk/reactos/dll/win32/uxtheme/draw.c trunk/reactos/dll/win32/uxtheme/main.c trunk/reactos/dll/win32/uxtheme/metric.c trunk/reactos/dll/win32/uxtheme/msstyles.c trunk/reactos/dll/win32/uxtheme/ncscrollbar.c trunk/reactos/dll/win32/uxtheme/nonclient.c trunk/reactos/dll/win32/uxtheme/property.c trunk/reactos/dll/win32/uxtheme/stylemap.c trunk/reactos/dll/win32/uxtheme/system.c trunk/reactos/dll/win32/uxtheme/themehooks.c trunk/reactos/dll/win32/uxtheme/uxini.c trunk/reactos/dll/win32/uxtheme/uxtheme.rbuild
Modified: trunk/reactos/dll/win32/uxtheme/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/CMakeList... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/CMakeLists.txt [iso-8859-1] Tue Sep 20 13:08:36 2011 @@ -27,5 +27,6 @@ target_link_libraries(uxtheme wine) add_delay_importlibs(uxtheme msimg32) add_importlibs(uxtheme user32 advapi32 gdi32 msvcrt kernel32 ntdll) +add_pch(uxtheme uxthemep.h) add_cd_file(TARGET uxtheme DESTINATION reactos/system32 FOR all) add_importlib_target(uxtheme.spec)
Modified: trunk/reactos/dll/win32/uxtheme/buffer.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/buffer.c?... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/buffer.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/buffer.c [iso-8859-1] Tue Sep 20 13:08:36 2011 @@ -18,17 +18,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "config.h" - -#include <stdlib.h> -#include <stdarg.h> - -#include "windef.h" -#include "winbase.h" -#include "winuser.h" -#include "wingdi.h" -#include "vfwmsgs.h" -#include "uxtheme.h" +#include "uxthemep.h" +#include "wine/debug.h"
#include "wine/debug.h"
Modified: trunk/reactos/dll/win32/uxtheme/draw.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/draw.c?re... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/draw.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/draw.c [iso-8859-1] Tue Sep 20 13:08:36 2011 @@ -18,21 +18,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "config.h" - -#include <stdlib.h> -#include <stdarg.h> - -#include "windef.h" -#include "winbase.h" -#include "winuser.h" -#include "wingdi.h" -#include "vfwmsgs.h" -#include "uxtheme.h" -#include "tmschema.h" - -#include "msstyles.h" -#include "uxthemedll.h" +#include "uxthemep.h" +#include "wine/debug.h"
#include "wine/debug.h"
@@ -1881,7 +1868,7 @@ hbmp = UXTHEME_DrawThemePartToDib(hTheme, hdc, iPartId, iStateId, pRect);
/* Retrieve the info of the dib section */ - GetObject(hbmp, sizeof (DIBSECTION), &dib); + GetObjectW(hbmp, sizeof (DIBSECTION), &dib);
/* Convert the bits of the dib section to a region */ *pRegion = UXTHEME_RegionFromDibBits((RGBQUAD*)dib.dsBm.bmBits, &clrTransparent, pRect);
Modified: trunk/reactos/dll/win32/uxtheme/main.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/main.c?re... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/main.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/main.c [iso-8859-1] Tue Sep 20 13:08:36 2011 @@ -18,13 +18,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "config.h" - -#include <stdarg.h> - -#include "windef.h" -#include "winbase.h" -#include "uxthemedll.h" +#include "uxthemep.h" +#include "wine/debug.h"
#include "wine/debug.h"
Modified: trunk/reactos/dll/win32/uxtheme/metric.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/metric.c?... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/metric.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/metric.c [iso-8859-1] Tue Sep 20 13:08:36 2011 @@ -18,19 +18,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "config.h" - -#include <stdarg.h> - -#include "windef.h" -#include "winbase.h" -#include "wingdi.h" -#include "winuser.h" -#include "vfwmsgs.h" -#include "uxtheme.h" -#include "tmschema.h" - -#include "msstyles.h" +#include "uxthemep.h" +#include "wine/debug.h"
#include "wine/debug.h"
Modified: trunk/reactos/dll/win32/uxtheme/msstyles.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/msstyles.... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/msstyles.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/msstyles.c [iso-8859-1] Tue Sep 20 13:08:36 2011 @@ -18,21 +18,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "config.h" - -#include <stdarg.h> -#include <stdlib.h> - -#include "windef.h" -#include "winbase.h" -#include "wingdi.h" -#include "winuser.h" -#include "winnls.h" -#include "vfwmsgs.h" -#include "uxtheme.h" -#include "tmschema.h" - -#include "msstyles.h" +#include "uxthemep.h" +#include "wine/debug.h"
#include "wine/unicode.h" #include "wine/debug.h"
Removed: trunk/reactos/dll/win32/uxtheme/msstyles.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/msstyles.... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/msstyles.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/msstyles.h (removed) @@ -1,118 +1,0 @@ -/* - * Internal msstyles related defines & declarations - * - * Copyright (C) 2003 Kevin Koltzau - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifndef __WINE_MSSTYLES_H -#define __WINE_MSSTYLES_H - -#define TMT_ENUM 200 - -#define MAX_THEME_APP_NAME 60 -#define MAX_THEME_CLASS_NAME 60 -#define MAX_THEME_VALUE_NAME 60 - -typedef struct _THEME_PROPERTY { - int iPrimitiveType; - int iPropertyId; - PROPERTYORIGIN origin; - - LPCWSTR lpValue; - DWORD dwValueLen; - - struct _THEME_PROPERTY *next; -} THEME_PROPERTY, *PTHEME_PROPERTY; - -typedef struct _THEME_PARTSTATE { - int iPartId; - int iStateId; - PTHEME_PROPERTY properties; - - struct _THEME_PARTSTATE *next; -} THEME_PARTSTATE, *PTHEME_PARTSTATE; - -struct _THEME_FILE; - -typedef struct _THEME_CLASS { - HMODULE hTheme; - struct _THEME_FILE* tf; - WCHAR szAppName[MAX_THEME_APP_NAME]; - WCHAR szClassName[MAX_THEME_CLASS_NAME]; - PTHEME_PARTSTATE partstate; - struct _THEME_CLASS *overrides; - - struct _THEME_CLASS *next; -} THEME_CLASS, *PTHEME_CLASS; - -typedef struct _THEME_IMAGE { - WCHAR name[MAX_PATH]; - HBITMAP image; - BOOL hasAlpha; - - struct _THEME_IMAGE *next; -} THEME_IMAGE, *PTHEME_IMAGE; - -typedef struct _THEME_FILE { - DWORD dwRefCount; - HMODULE hTheme; - WCHAR szThemeFile[MAX_PATH]; - LPWSTR pszAvailColors; - LPWSTR pszAvailSizes; - - LPWSTR pszSelectedColor; - LPWSTR pszSelectedSize; - - PTHEME_CLASS classes; - PTHEME_PROPERTY metrics; - PTHEME_IMAGE images; -} THEME_FILE, *PTHEME_FILE; - -typedef struct _UXINI_FILE *PUXINI_FILE; - -HRESULT MSSTYLES_OpenThemeFile(LPCWSTR lpThemeFile, LPCWSTR pszColorName, LPCWSTR pszSizeName, PTHEME_FILE *tf); -void MSSTYLES_CloseThemeFile(PTHEME_FILE tf); -HRESULT MSSTYLES_SetActiveTheme(PTHEME_FILE tf, BOOL setMetrics); -PTHEME_CLASS MSSTYLES_OpenThemeClass(LPCWSTR pszAppName, LPCWSTR pszClassList); -HRESULT MSSTYLES_CloseThemeClass(PTHEME_CLASS tc); -BOOL MSSTYLES_LookupProperty(LPCWSTR pszPropertyName, int *dwPrimitive, int *dwId); -BOOL MSSTYLES_LookupEnum(LPCWSTR pszValueName, int dwEnum, int *dwValue); -BOOL MSSTYLES_LookupPartState(LPCWSTR pszClass, LPCWSTR pszPart, LPCWSTR pszState, int *iPartId, int *iStateId); -PUXINI_FILE MSSTYLES_GetThemeIni(PTHEME_FILE tf); -PTHEME_PARTSTATE MSSTYLES_FindPartState(PTHEME_CLASS tc, int iPartId, int iStateId, PTHEME_CLASS *tcNext); -PTHEME_PROPERTY MSSTYLES_FindProperty(PTHEME_CLASS tc, int iPartId, int iStateId, int iPropertyPrimitive, int iPropertyId); -PTHEME_PROPERTY MSSTYLES_FindMetric(int iPropertyPrimitive, int iPropertyId); -HBITMAP MSSTYLES_LoadBitmap(PTHEME_CLASS tc, LPCWSTR lpFilename, BOOL* hasAlpha); - -HRESULT MSSTYLES_GetPropertyBool(PTHEME_PROPERTY tp, BOOL *pfVal); -HRESULT MSSTYLES_GetPropertyColor(PTHEME_PROPERTY tp, COLORREF *pColor); -HRESULT MSSTYLES_GetPropertyFont(PTHEME_PROPERTY tp, HDC hdc, LOGFONTW *pFont); -HRESULT MSSTYLES_GetPropertyInt(PTHEME_PROPERTY tp, int *piVal); -HRESULT MSSTYLES_GetPropertyIntList(PTHEME_PROPERTY tp, INTLIST *pIntList); -HRESULT MSSTYLES_GetPropertyPosition(PTHEME_PROPERTY tp, POINT *pPoint); -HRESULT MSSTYLES_GetPropertyString(PTHEME_PROPERTY tp, LPWSTR pszBuff, int cchMaxBuffChars); -HRESULT MSSTYLES_GetPropertyRect(PTHEME_PROPERTY tp, RECT *pRect); -HRESULT MSSTYLES_GetPropertyMargins(PTHEME_PROPERTY tp, RECT *prc, MARGINS *pMargins); - -PUXINI_FILE UXINI_LoadINI(HMODULE hTheme, LPCWSTR lpName); -void UXINI_CloseINI(PUXINI_FILE uf); -LPCWSTR UXINI_GetNextSection(PUXINI_FILE uf, DWORD *dwLen); -BOOL UXINI_FindSection(PUXINI_FILE uf, LPCWSTR lpName); -LPCWSTR UXINI_GetNextValue(PUXINI_FILE uf, DWORD *dwNameLen, LPCWSTR *lpValue, DWORD *dwValueLen); -BOOL UXINI_FindValue(PUXINI_FILE uf, LPCWSTR lpName, LPCWSTR *lpValue, DWORD *dwValueLen); - -#endif
Modified: trunk/reactos/dll/win32/uxtheme/ncscrollbar.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/ncscrollb... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/ncscrollbar.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/ncscrollbar.c [iso-8859-1] Tue Sep 20 13:08:36 2011 @@ -9,14 +9,7 @@ * Copyright 1994, 1996 Alexandre Julliard */
-#include <windows.h> -#include "undocuser.h" -#include "vfwmsgs.h" -#include "uxtheme.h" -#include <tmschema.h> -#include <windowsx.h> -#include "ncthm.h" -#include <assert.h> +#include "uxthemep.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
Removed: trunk/reactos/dll/win32/uxtheme/ncthm.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/ncthm.h?r... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/ncthm.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/ncthm.h (removed) @@ -1,106 +1,0 @@ - -typedef struct _WND_CONTEXT -{ - BOOL HasAppDefinedRgn; - BOOL HasThemeRgn; - BOOL UpdatingRgn; -} WND_CONTEXT, *PWND_CONTEXT; - -typedef struct _DRAW_CONTEXT -{ - HWND hWnd; - HDC hDC; - HTHEME theme; - HTHEME scrolltheme; - HTHEME hPrevTheme; - WINDOWINFO wi; - BOOL Active; /* wi.dwWindowStatus isn't correct for mdi child windows */ - HRGN hRgn; - int CaptionHeight; - - /* for double buffering */ - HDC hDCScreen; - HBITMAP hbmpOld; -} DRAW_CONTEXT, *PDRAW_CONTEXT; - -typedef enum -{ - CLOSEBUTTON, - MAXBUTTON, - MINBUTTON, - HELPBUTTON -} CAPTIONBUTTON; - -/* -The following values specify all possible vutton states -Note that not all of them are documented but it is easy to -find them by opening a theme file -*/ -typedef enum { - BUTTON_NORMAL = 1 , - BUTTON_HOT , - BUTTON_PRESSED , - BUTTON_DISABLED , - BUTTON_INACTIVE -} THEME_BUTTON_STATES; - - /* Scroll-bar hit testing */ -enum SCROLL_HITTEST -{ - SCROLL_NOWHERE, /* Outside the scroll bar */ - SCROLL_TOP_ARROW, /* Top or left arrow */ - SCROLL_TOP_RECT, /* Rectangle between the top arrow and the thumb */ - SCROLL_THUMB, /* Thumb rectangle */ - SCROLL_BOTTOM_RECT, /* Rectangle between the thumb and the bottom arrow */ - SCROLL_BOTTOM_ARROW /* Bottom or right arrow */ -}; - -#define HASSIZEGRIP(Style, ExStyle, ParentStyle, WindowRect, ParentClientRect) \ - ((!(Style & WS_CHILD) && (Style & WS_THICKFRAME) && !(Style & WS_MAXIMIZE)) || \ - ((Style & WS_CHILD) && (ParentStyle & WS_THICKFRAME) && !(ParentStyle & WS_MAXIMIZE) && \ - (WindowRect.right - WindowRect.left == ParentClientRect.right) && \ - (WindowRect.bottom - WindowRect.top == ParentClientRect.bottom))) - -#define HAS_MENU(hwnd,style) ((((style) & (WS_CHILD | WS_POPUP)) != WS_CHILD) && GetMenu(hwnd)) - -#define BUTTON_GAP_SIZE 2 - -#define MENU_BAR_ITEMS_SPACE (12) - -#define SCROLL_TIMER 0 /* Scroll timer id */ - - /* Overlap between arrows and thumb */ -#define SCROLL_ARROW_THUMB_OVERLAP 0 - - /* Delay (in ms) before first repetition when holding the button down */ -#define SCROLL_FIRST_DELAY 200 - - /* Delay (in ms) between scroll repetitions */ -#define SCROLL_REPEAT_DELAY 50 - -/* Minimum size of the thumb in pixels */ -#define SCROLL_MIN_THUMB 6 - -/* Minimum size of the rectangle between the arrows */ -#define SCROLL_MIN_RECT 4 - -void -ThemeDrawScrollBar(PDRAW_CONTEXT pcontext, INT Bar, POINT* pt); - -VOID -NC_TrackScrollBar(HWND Wnd, WPARAM wParam, POINT Pt); - -void -ThemeInitDrawContext(PDRAW_CONTEXT pcontext, - HWND hWnd, - HRGN hRgn); - -void -ThemeCleanupDrawContext(PDRAW_CONTEXT pcontext); - -PWND_CONTEXT -ThemeGetWndContext(HWND hWnd); - -extern ATOM atWindowTheme; -extern ATOM atWndContrext; -
Modified: trunk/reactos/dll/win32/uxtheme/nonclient.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/nonclient... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/nonclient.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/nonclient.c [iso-8859-1] Tue Sep 20 13:08:36 2011 @@ -6,14 +6,7 @@ * PROGRAMMER: Giannis Adamopoulos */
-#include <windows.h> -#include <windowsx.h> -#include "undocuser.h" -#include "vfwmsgs.h" -#include "uxtheme.h" -#include <tmschema.h> -#include "ncthm.h" - +#include "uxthemep.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
Modified: trunk/reactos/dll/win32/uxtheme/property.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/property.... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/property.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/property.c [iso-8859-1] Tue Sep 20 13:08:36 2011 @@ -18,20 +18,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "config.h" - -#include <stdarg.h> - -#include "windef.h" -#include "winbase.h" -#include "winuser.h" -#include "wingdi.h" -#include "vfwmsgs.h" -#include "uxtheme.h" -#include "tmschema.h" - -#include "msstyles.h" - +#include "uxthemep.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
Modified: trunk/reactos/dll/win32/uxtheme/stylemap.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/stylemap.... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/stylemap.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/stylemap.c [iso-8859-1] Tue Sep 20 13:08:36 2011 @@ -18,16 +18,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "config.h" - -#include <stdarg.h> - -#include "windef.h" -#include "winbase.h" -#include "winuser.h" -#include "tmschema.h" - -#define TMT_ENUM 200 +#include "uxthemep.h" +#include "wine/debug.h"
typedef struct _MSSTYLES_PROPERTY_MAP { WORD dwPrimitiveType;
Modified: trunk/reactos/dll/win32/uxtheme/system.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/system.c?... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/system.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/system.c [iso-8859-1] Tue Sep 20 13:08:36 2011 @@ -18,25 +18,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "config.h" - -#include <stdarg.h> -#include <stdio.h> - -#include "windef.h" -#include "winbase.h" -#include "wingdi.h" -#include "winuser.h" -#include "winreg.h" -#include "vfwmsgs.h" -#include "uxtheme.h" -#include "tmschema.h" -#include "uxundoc.h" - -#include "uxthemedll.h" -#include "msstyles.h" -#include "ncthm.h" - +#include "uxthemep.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
Modified: trunk/reactos/dll/win32/uxtheme/themehooks.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/themehook... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/themehooks.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/themehooks.c [iso-8859-1] Tue Sep 20 13:08:36 2011 @@ -6,15 +6,7 @@ * PROGRAMMER: Giannis Adamopoulos */
-#include <windows.h> -#include <undocuser.h> - -#include "vfwmsgs.h" -#include "uxtheme.h" -#include "uxthemedll.h" -#include "ncthm.h" -#include "tmschema.h" - +#include "uxthemep.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
Modified: trunk/reactos/dll/win32/uxtheme/uxini.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/uxini.c?r... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/uxini.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/uxini.c [iso-8859-1] Tue Sep 20 13:08:36 2011 @@ -18,14 +18,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "config.h" - -#include <stdarg.h> - -#include "windef.h" -#include "winbase.h" -#include "winnls.h" - +#include "uxthemep.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme); @@ -42,7 +35,7 @@ LPCWSTR lpIni; LPCWSTR lpCurLoc; LPCWSTR lpEnd; -} UXINI_FILE, *PUXINI_FILE; +} UXINI_FILE;
/***********************************************************************/
Modified: trunk/reactos/dll/win32/uxtheme/uxtheme.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/uxtheme.r... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/uxtheme.rbuild [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/uxtheme.rbuild [iso-8859-1] Tue Sep 20 13:08:36 2011 @@ -6,6 +6,7 @@ <include base="uxtheme">.</include> <include base="ReactOS">include/reactos/wine</include> <define name="__WINESRC__" /> + <pch>uxthemep.h</pch> <file>buffer.c</file> <file>draw.c</file> <file>main.c</file>
Removed: trunk/reactos/dll/win32/uxtheme/uxthemedll.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/uxthemedl... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/uxthemedll.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/uxtheme/uxthemedll.h (removed) @@ -1,35 +1,0 @@ -/* - * Internal uxtheme defines & declarations - * - * Copyright (C) 2003 Kevin Koltzau - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifndef __WINE_UXTHEMEDLL_H -#define __WINE_UXTHEMEDLL_H - -extern void UXTHEME_InitSystem(HINSTANCE hInst); -extern void UXTHEME_LoadTheme(BOOL bLoad); -extern BOOL CALLBACK UXTHEME_broadcast_msg (HWND hWnd, LPARAM msg); - -/* No alpha blending */ -#define ALPHABLEND_NONE 0 -/* "Cheap" binary alpha blending - but possibly faster */ -#define ALPHABLEND_BINARY 1 -/* Full alpha blending */ -#define ALPHABLEND_FULL 2 - -#endif /* __WINE_UXTHEMEDLL_H */
Added: trunk/reactos/dll/win32/uxtheme/uxthemep.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/uxtheme/uxthemep.... ============================================================================== --- trunk/reactos/dll/win32/uxtheme/uxthemep.h (added) +++ trunk/reactos/dll/win32/uxtheme/uxthemep.h [iso-8859-1] Tue Sep 20 13:08:36 2011 @@ -1,0 +1,212 @@ +#include <windows.h> +#include <windowsx.h> +#include <undocuser.h> +#include <uxtheme.h> +#include <uxundoc.h> +#include <vfwmsgs.h> +#include <tmschema.h> +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> +#include <assert.h> + +#define TMT_ENUM 200 + +#define MAX_THEME_APP_NAME 60 +#define MAX_THEME_CLASS_NAME 60 +#define MAX_THEME_VALUE_NAME 60 + +typedef struct _THEME_PROPERTY { + int iPrimitiveType; + int iPropertyId; + PROPERTYORIGIN origin; + + LPCWSTR lpValue; + DWORD dwValueLen; + + struct _THEME_PROPERTY *next; +} THEME_PROPERTY, *PTHEME_PROPERTY; + +typedef struct _THEME_PARTSTATE { + int iPartId; + int iStateId; + PTHEME_PROPERTY properties; + + struct _THEME_PARTSTATE *next; +} THEME_PARTSTATE, *PTHEME_PARTSTATE; + +struct _THEME_FILE; + +typedef struct _THEME_CLASS { + HMODULE hTheme; + struct _THEME_FILE* tf; + WCHAR szAppName[MAX_THEME_APP_NAME]; + WCHAR szClassName[MAX_THEME_CLASS_NAME]; + PTHEME_PARTSTATE partstate; + struct _THEME_CLASS *overrides; + + struct _THEME_CLASS *next; +} THEME_CLASS, *PTHEME_CLASS; + +typedef struct _THEME_IMAGE { + WCHAR name[MAX_PATH]; + HBITMAP image; + BOOL hasAlpha; + + struct _THEME_IMAGE *next; +} THEME_IMAGE, *PTHEME_IMAGE; + +typedef struct _THEME_FILE { + DWORD dwRefCount; + HMODULE hTheme; + WCHAR szThemeFile[MAX_PATH]; + LPWSTR pszAvailColors; + LPWSTR pszAvailSizes; + + LPWSTR pszSelectedColor; + LPWSTR pszSelectedSize; + + PTHEME_CLASS classes; + PTHEME_PROPERTY metrics; + PTHEME_IMAGE images; +} THEME_FILE, *PTHEME_FILE; + +typedef struct _UXINI_FILE *PUXINI_FILE; + +HRESULT MSSTYLES_OpenThemeFile(LPCWSTR lpThemeFile, LPCWSTR pszColorName, LPCWSTR pszSizeName, PTHEME_FILE *tf); +void MSSTYLES_CloseThemeFile(PTHEME_FILE tf); +HRESULT MSSTYLES_SetActiveTheme(PTHEME_FILE tf, BOOL setMetrics); +PTHEME_CLASS MSSTYLES_OpenThemeClass(LPCWSTR pszAppName, LPCWSTR pszClassList); +HRESULT MSSTYLES_CloseThemeClass(PTHEME_CLASS tc); +BOOL MSSTYLES_LookupProperty(LPCWSTR pszPropertyName, int *dwPrimitive, int *dwId); +BOOL MSSTYLES_LookupEnum(LPCWSTR pszValueName, int dwEnum, int *dwValue); +BOOL MSSTYLES_LookupPartState(LPCWSTR pszClass, LPCWSTR pszPart, LPCWSTR pszState, int *iPartId, int *iStateId); +PUXINI_FILE MSSTYLES_GetThemeIni(PTHEME_FILE tf); +PTHEME_PARTSTATE MSSTYLES_FindPartState(PTHEME_CLASS tc, int iPartId, int iStateId, PTHEME_CLASS *tcNext); +PTHEME_PROPERTY MSSTYLES_FindProperty(PTHEME_CLASS tc, int iPartId, int iStateId, int iPropertyPrimitive, int iPropertyId); +PTHEME_PROPERTY MSSTYLES_FindMetric(int iPropertyPrimitive, int iPropertyId); +HBITMAP MSSTYLES_LoadBitmap(PTHEME_CLASS tc, LPCWSTR lpFilename, BOOL* hasAlpha); + +HRESULT MSSTYLES_GetPropertyBool(PTHEME_PROPERTY tp, BOOL *pfVal); +HRESULT MSSTYLES_GetPropertyColor(PTHEME_PROPERTY tp, COLORREF *pColor); +HRESULT MSSTYLES_GetPropertyFont(PTHEME_PROPERTY tp, HDC hdc, LOGFONTW *pFont); +HRESULT MSSTYLES_GetPropertyInt(PTHEME_PROPERTY tp, int *piVal); +HRESULT MSSTYLES_GetPropertyIntList(PTHEME_PROPERTY tp, INTLIST *pIntList); +HRESULT MSSTYLES_GetPropertyPosition(PTHEME_PROPERTY tp, POINT *pPoint); +HRESULT MSSTYLES_GetPropertyString(PTHEME_PROPERTY tp, LPWSTR pszBuff, int cchMaxBuffChars); +HRESULT MSSTYLES_GetPropertyRect(PTHEME_PROPERTY tp, RECT *pRect); +HRESULT MSSTYLES_GetPropertyMargins(PTHEME_PROPERTY tp, RECT *prc, MARGINS *pMargins); + +PUXINI_FILE UXINI_LoadINI(HMODULE hTheme, LPCWSTR lpName); +void UXINI_CloseINI(PUXINI_FILE uf); +LPCWSTR UXINI_GetNextSection(PUXINI_FILE uf, DWORD *dwLen); +BOOL UXINI_FindSection(PUXINI_FILE uf, LPCWSTR lpName); +LPCWSTR UXINI_GetNextValue(PUXINI_FILE uf, DWORD *dwNameLen, LPCWSTR *lpValue, DWORD *dwValueLen); +BOOL UXINI_FindValue(PUXINI_FILE uf, LPCWSTR lpName, LPCWSTR *lpValue, DWORD *dwValueLen); + + + +typedef struct _WND_CONTEXT +{ + BOOL HasAppDefinedRgn; + BOOL HasThemeRgn; + BOOL UpdatingRgn; +} WND_CONTEXT, *PWND_CONTEXT; + +typedef struct _DRAW_CONTEXT +{ + HWND hWnd; + HDC hDC; + HTHEME theme; + HTHEME scrolltheme; + HTHEME hPrevTheme; + WINDOWINFO wi; + BOOL Active; /* wi.dwWindowStatus isn't correct for mdi child windows */ + HRGN hRgn; + int CaptionHeight; + + /* for double buffering */ + HDC hDCScreen; + HBITMAP hbmpOld; +} DRAW_CONTEXT, *PDRAW_CONTEXT; + +typedef enum +{ + CLOSEBUTTON, + MAXBUTTON, + MINBUTTON, + HELPBUTTON +} CAPTIONBUTTON; + +/* +The following values specify all possible vutton states +Note that not all of them are documented but it is easy to +find them by opening a theme file +*/ +typedef enum { + BUTTON_NORMAL = 1 , + BUTTON_HOT , + BUTTON_PRESSED , + BUTTON_DISABLED , + BUTTON_INACTIVE +} THEME_BUTTON_STATES; + + /* Scroll-bar hit testing */ +enum SCROLL_HITTEST +{ + SCROLL_NOWHERE, /* Outside the scroll bar */ + SCROLL_TOP_ARROW, /* Top or left arrow */ + SCROLL_TOP_RECT, /* Rectangle between the top arrow and the thumb */ + SCROLL_THUMB, /* Thumb rectangle */ + SCROLL_BOTTOM_RECT, /* Rectangle between the thumb and the bottom arrow */ + SCROLL_BOTTOM_ARROW /* Bottom or right arrow */ +}; + +#define HASSIZEGRIP(Style, ExStyle, ParentStyle, WindowRect, ParentClientRect) \ + ((!(Style & WS_CHILD) && (Style & WS_THICKFRAME) && !(Style & WS_MAXIMIZE)) || \ + ((Style & WS_CHILD) && (ParentStyle & WS_THICKFRAME) && !(ParentStyle & WS_MAXIMIZE) && \ + (WindowRect.right - WindowRect.left == ParentClientRect.right) && \ + (WindowRect.bottom - WindowRect.top == ParentClientRect.bottom))) + +#define HAS_MENU(hwnd,style) ((((style) & (WS_CHILD | WS_POPUP)) != WS_CHILD) && GetMenu(hwnd)) + +#define BUTTON_GAP_SIZE 2 + +#define MENU_BAR_ITEMS_SPACE (12) + +#define SCROLL_TIMER 0 /* Scroll timer id */ + + /* Overlap between arrows and thumb */ +#define SCROLL_ARROW_THUMB_OVERLAP 0 + + /* Delay (in ms) before first repetition when holding the button down */ +#define SCROLL_FIRST_DELAY 200 + + /* Delay (in ms) between scroll repetitions */ +#define SCROLL_REPEAT_DELAY 50 + +/* Minimum size of the thumb in pixels */ +#define SCROLL_MIN_THUMB 6 + +/* Minimum size of the rectangle between the arrows */ +#define SCROLL_MIN_RECT 4 + +void ThemeDrawScrollBar(PDRAW_CONTEXT pcontext, INT Bar, POINT* pt); +VOID NC_TrackScrollBar(HWND Wnd, WPARAM wParam, POINT Pt); +void ThemeInitDrawContext(PDRAW_CONTEXT pcontext, HWND hWnd, HRGN hRgn); +void ThemeCleanupDrawContext(PDRAW_CONTEXT pcontext); +PWND_CONTEXT ThemeGetWndContext(HWND hWnd); + +extern ATOM atWindowTheme; +extern ATOM atWndContrext; + +void UXTHEME_InitSystem(HINSTANCE hInst); +void UXTHEME_LoadTheme(BOOL bLoad); +BOOL CALLBACK UXTHEME_broadcast_msg (HWND hWnd, LPARAM msg); + +/* No alpha blending */ +#define ALPHABLEND_NONE 0 +/* "Cheap" binary alpha blending - but possibly faster */ +#define ALPHABLEND_BINARY 1 +/* Full alpha blending */ +#define ALPHABLEND_FULL 2
Propchange: trunk/reactos/dll/win32/uxtheme/uxthemep.h ------------------------------------------------------------------------------ svn:eol-style = native