mirror of
https://github.com/reactos/reactos.git
synced 2025-06-11 04:47:22 +00:00
[uxtheme]
- Use precompiled headers svn path=/trunk/; revision=53771
This commit is contained in:
parent
06fd95c89b
commit
1c88181b75
17 changed files with 139 additions and 303 deletions
|
@ -27,5 +27,6 @@ set_module_type(uxtheme win32dll)
|
||||||
target_link_libraries(uxtheme wine)
|
target_link_libraries(uxtheme wine)
|
||||||
add_delay_importlibs(uxtheme msimg32)
|
add_delay_importlibs(uxtheme msimg32)
|
||||||
add_importlibs(uxtheme user32 advapi32 gdi32 msvcrt kernel32 ntdll)
|
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_cd_file(TARGET uxtheme DESTINATION reactos/system32 FOR all)
|
||||||
add_importlib_target(uxtheme.spec)
|
add_importlib_target(uxtheme.spec)
|
||||||
|
|
|
@ -18,17 +18,8 @@
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "uxthemep.h"
|
||||||
|
#include "wine/debug.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 "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
|
||||||
|
|
|
@ -18,21 +18,8 @@
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "uxthemep.h"
|
||||||
|
#include "wine/debug.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 "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
|
||||||
|
@ -1881,7 +1868,7 @@ HRESULT UXTHEME_GetImageBackBackgroundRegion(HTHEME hTheme, HDC hdc, int iPartId
|
||||||
hbmp = UXTHEME_DrawThemePartToDib(hTheme, hdc, iPartId, iStateId, pRect);
|
hbmp = UXTHEME_DrawThemePartToDib(hTheme, hdc, iPartId, iStateId, pRect);
|
||||||
|
|
||||||
/* Retrieve the info of the dib section */
|
/* 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 */
|
/* Convert the bits of the dib section to a region */
|
||||||
*pRegion = UXTHEME_RegionFromDibBits((RGBQUAD*)dib.dsBm.bmBits, &clrTransparent, pRect);
|
*pRegion = UXTHEME_RegionFromDibBits((RGBQUAD*)dib.dsBm.bmBits, &clrTransparent, pRect);
|
||||||
|
|
|
@ -18,13 +18,8 @@
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "uxthemep.h"
|
||||||
|
#include "wine/debug.h"
|
||||||
#include <stdarg.h>
|
|
||||||
|
|
||||||
#include "windef.h"
|
|
||||||
#include "winbase.h"
|
|
||||||
#include "uxthemedll.h"
|
|
||||||
|
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
|
||||||
|
|
|
@ -18,19 +18,8 @@
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "uxthemep.h"
|
||||||
|
#include "wine/debug.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 "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
|
||||||
|
|
|
@ -18,21 +18,8 @@
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "uxthemep.h"
|
||||||
|
#include "wine/debug.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 "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
|
|
@ -9,14 +9,7 @@
|
||||||
* Copyright 1994, 1996 Alexandre Julliard
|
* Copyright 1994, 1996 Alexandre Julliard
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <windows.h>
|
#include "uxthemep.h"
|
||||||
#include "undocuser.h"
|
|
||||||
#include "vfwmsgs.h"
|
|
||||||
#include "uxtheme.h"
|
|
||||||
#include <tmschema.h>
|
|
||||||
#include <windowsx.h>
|
|
||||||
#include "ncthm.h"
|
|
||||||
#include <assert.h>
|
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
|
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
|
||||||
|
|
|
@ -1,106 +0,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;
|
|
||||||
|
|
|
@ -6,14 +6,7 @@
|
||||||
* PROGRAMMER: Giannis Adamopoulos
|
* PROGRAMMER: Giannis Adamopoulos
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <windows.h>
|
#include "uxthemep.h"
|
||||||
#include <windowsx.h>
|
|
||||||
#include "undocuser.h"
|
|
||||||
#include "vfwmsgs.h"
|
|
||||||
#include "uxtheme.h"
|
|
||||||
#include <tmschema.h>
|
|
||||||
#include "ncthm.h"
|
|
||||||
|
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
|
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
|
||||||
|
|
|
@ -18,20 +18,7 @@
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "uxthemep.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 "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
|
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
|
||||||
|
|
|
@ -18,16 +18,8 @@
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "uxthemep.h"
|
||||||
|
#include "wine/debug.h"
|
||||||
#include <stdarg.h>
|
|
||||||
|
|
||||||
#include "windef.h"
|
|
||||||
#include "winbase.h"
|
|
||||||
#include "winuser.h"
|
|
||||||
#include "tmschema.h"
|
|
||||||
|
|
||||||
#define TMT_ENUM 200
|
|
||||||
|
|
||||||
typedef struct _MSSTYLES_PROPERTY_MAP {
|
typedef struct _MSSTYLES_PROPERTY_MAP {
|
||||||
WORD dwPrimitiveType;
|
WORD dwPrimitiveType;
|
||||||
|
|
|
@ -18,25 +18,7 @@
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "uxthemep.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 "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
|
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
|
||||||
|
|
|
@ -6,15 +6,7 @@
|
||||||
* PROGRAMMER: Giannis Adamopoulos
|
* PROGRAMMER: Giannis Adamopoulos
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <windows.h>
|
#include "uxthemep.h"
|
||||||
#include <undocuser.h>
|
|
||||||
|
|
||||||
#include "vfwmsgs.h"
|
|
||||||
#include "uxtheme.h"
|
|
||||||
#include "uxthemedll.h"
|
|
||||||
#include "ncthm.h"
|
|
||||||
#include "tmschema.h"
|
|
||||||
|
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
|
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
|
||||||
|
|
|
@ -18,14 +18,7 @@
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "uxthemep.h"
|
||||||
|
|
||||||
#include <stdarg.h>
|
|
||||||
|
|
||||||
#include "windef.h"
|
|
||||||
#include "winbase.h"
|
|
||||||
#include "winnls.h"
|
|
||||||
|
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
|
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
|
||||||
|
@ -42,7 +35,7 @@ typedef struct _UXINI_FILE {
|
||||||
LPCWSTR lpIni;
|
LPCWSTR lpIni;
|
||||||
LPCWSTR lpCurLoc;
|
LPCWSTR lpCurLoc;
|
||||||
LPCWSTR lpEnd;
|
LPCWSTR lpEnd;
|
||||||
} UXINI_FILE, *PUXINI_FILE;
|
} UXINI_FILE;
|
||||||
|
|
||||||
/***********************************************************************/
|
/***********************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
<include base="uxtheme">.</include>
|
<include base="uxtheme">.</include>
|
||||||
<include base="ReactOS">include/reactos/wine</include>
|
<include base="ReactOS">include/reactos/wine</include>
|
||||||
<define name="__WINESRC__" />
|
<define name="__WINESRC__" />
|
||||||
|
<pch>uxthemep.h</pch>
|
||||||
<file>buffer.c</file>
|
<file>buffer.c</file>
|
||||||
<file>draw.c</file>
|
<file>draw.c</file>
|
||||||
<file>main.c</file>
|
<file>main.c</file>
|
||||||
|
|
|
@ -1,35 +0,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 */
|
|
|
@ -1,25 +1,14 @@
|
||||||
/*
|
#include <windows.h>
|
||||||
* Internal msstyles related defines & declarations
|
#include <windowsx.h>
|
||||||
*
|
#include <undocuser.h>
|
||||||
* Copyright (C) 2003 Kevin Koltzau
|
#include <uxtheme.h>
|
||||||
*
|
#include <uxundoc.h>
|
||||||
* This library is free software; you can redistribute it and/or
|
#include <vfwmsgs.h>
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
#include <tmschema.h>
|
||||||
* License as published by the Free Software Foundation; either
|
#include <stdarg.h>
|
||||||
* version 2.1 of the License, or (at your option) any later version.
|
#include <stdio.h>
|
||||||
*
|
#include <stdlib.h>
|
||||||
* This library is distributed in the hope that it will be useful,
|
#include <assert.h>
|
||||||
* 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 TMT_ENUM 200
|
||||||
|
|
||||||
|
@ -115,4 +104,109 @@ BOOL UXINI_FindSection(PUXINI_FILE uf, LPCWSTR lpName);
|
||||||
LPCWSTR UXINI_GetNextValue(PUXINI_FILE uf, DWORD *dwNameLen, LPCWSTR *lpValue, DWORD *dwValueLen);
|
LPCWSTR UXINI_GetNextValue(PUXINI_FILE uf, DWORD *dwNameLen, LPCWSTR *lpValue, DWORD *dwValueLen);
|
||||||
BOOL UXINI_FindValue(PUXINI_FILE uf, LPCWSTR lpName, LPCWSTR *lpValue, DWORD *dwValueLen);
|
BOOL UXINI_FindValue(PUXINI_FILE uf, LPCWSTR lpName, LPCWSTR *lpValue, DWORD *dwValueLen);
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
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
|
Loading…
Add table
Add a link
Reference in a new issue