Initial implementation of uxtheme.dll, mostly stubbed out for now.
This commit is contained in:
parent
5e3549bf3b
commit
0af4fb9e6d
|
@ -1507,6 +1507,7 @@ dlls/urlmon/Makefile
|
|||
dlls/urlmon/tests/Makefile
|
||||
dlls/user/Makefile
|
||||
dlls/user/tests/Makefile
|
||||
dlls/uxtheme/Makefile
|
||||
dlls/version/Makefile
|
||||
dlls/win32s/Makefile
|
||||
dlls/winaspi/Makefile
|
||||
|
|
|
@ -99,6 +99,7 @@ BASEDIRS = \
|
|||
url \
|
||||
urlmon \
|
||||
user \
|
||||
uxtheme \
|
||||
version \
|
||||
win32s \
|
||||
winaspi \
|
||||
|
@ -290,6 +291,7 @@ SYMLINKS = \
|
|||
url.dll$(DLLEXT) \
|
||||
urlmon.dll$(DLLEXT) \
|
||||
user32.dll$(DLLEXT) \
|
||||
uxtheme.dll$(DLLEXT) \
|
||||
version.dll$(DLLEXT) \
|
||||
w32skrnl.dll$(DLLEXT) \
|
||||
winealsa.drv$(DLLEXT) \
|
||||
|
@ -615,6 +617,9 @@ user32.dll$(DLLEXT) ddeml.dll$(DLLEXT) display.drv$(DLLEXT) \
|
|||
keyboard.drv$(DLLEXT) mouse.drv$(DLLEXT) user.exe$(DLLEXT): user/user32.dll$(DLLEXT)
|
||||
$(RM) $@ && $(LN_S) user/user32.dll$(DLLEXT) $@
|
||||
|
||||
uxtheme.dll$(DLLEXT): uxtheme/uxtheme.dll$(DLLEXT)
|
||||
$(RM) $@ && $(LN_S) uxtheme/uxtheme.dll$(DLLEXT) $@
|
||||
|
||||
version.dll$(DLLEXT) ver.dll$(DLLEXT): version/version.dll$(DLLEXT)
|
||||
$(RM) $@ && $(LN_S) version/version.dll$(DLLEXT) $@
|
||||
|
||||
|
@ -770,6 +775,7 @@ IMPORT_LIBS = \
|
|||
liburl \
|
||||
liburlmon \
|
||||
libuser32 \
|
||||
libuxtheme \
|
||||
libversion \
|
||||
libw32skrnl \
|
||||
libwinedos \
|
||||
|
@ -1211,6 +1217,11 @@ libuser32.def: user/user32.spec.def
|
|||
libuser32.a: user/user32.spec.def
|
||||
$(DLLTOOL) -k -l $@ -d user/user32.spec.def
|
||||
|
||||
libuxtheme.def: uxtheme/uxtheme.spec.def
|
||||
$(RM) $@ && $(LN_S) uxtheme/uxtheme.spec.def $@
|
||||
libuxtheme.a: uxtheme/uxtheme.spec.def
|
||||
$(DLLTOOL) -k -l $@ -d uxtheme/uxtheme.spec.def
|
||||
|
||||
libversion.def: version/version.spec.def
|
||||
$(RM) $@ && $(LN_S) version/version.spec.def $@
|
||||
libversion.a: version/version.spec.def
|
||||
|
@ -1371,6 +1382,7 @@ twain/twain_32.spec.def: $(WINEBUILD)
|
|||
url/url.spec.def: $(WINEBUILD)
|
||||
urlmon/urlmon.spec.def: $(WINEBUILD)
|
||||
user/user32.spec.def: $(WINEBUILD)
|
||||
uxtheme/uxtheme.spec.def: $(WINEBUILD)
|
||||
version/version.spec.def: $(WINEBUILD)
|
||||
win32s/w32skrnl.spec.def: $(WINEBUILD)
|
||||
winedos/winedos.spec.def: $(WINEBUILD)
|
||||
|
@ -1490,6 +1502,7 @@ twain/twain_32.dll$(DLLEXT): twain
|
|||
url/url.dll$(DLLEXT): url
|
||||
urlmon/urlmon.dll$(DLLEXT): urlmon
|
||||
user/user32.dll$(DLLEXT): user
|
||||
uxtheme/uxtheme.dll$(DLLEXT): uxtheme
|
||||
version/version.dll$(DLLEXT): version
|
||||
win32s/w32skrnl.dll$(DLLEXT): win32s
|
||||
winmm/winealsa/winealsa.drv$(DLLEXT): winmm/winealsa
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
Makefile
|
||||
uxtheme.dll.dbg.c
|
||||
uxtheme.spec.c
|
||||
uxtheme.spec.def
|
|
@ -0,0 +1,17 @@
|
|||
TOPSRCDIR = @top_srcdir@
|
||||
TOPOBJDIR = ../..
|
||||
SRCDIR = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
MODULE = uxtheme.dll
|
||||
IMPORTS = gdi32 user32 advapi32 kernel32 ntdll
|
||||
EXTRALIBS = $(LIBUNICODE)
|
||||
|
||||
LDDLLFLAGS = @LDDLLFLAGS@
|
||||
SYMBOLFILE = $(MODULE).tmp.o
|
||||
|
||||
C_SRCS = \
|
||||
main.c
|
||||
|
||||
@MAKE_DLL_RULES@
|
||||
|
||||
### Dependencies:
|
|
@ -0,0 +1,80 @@
|
|||
/*
|
||||
* Win32 5.1 Themes
|
||||
*
|
||||
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
#include "wingdi.h"
|
||||
#include "uxtheme.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(uxtheme);
|
||||
|
||||
/* For the moment, do nothing here. */
|
||||
BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
|
||||
{
|
||||
switch(fdwReason) {
|
||||
case DLL_PROCESS_ATTACH:
|
||||
DisableThreadLibraryCalls(hInstDLL);
|
||||
break;
|
||||
case DLL_PROCESS_DETACH:
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL WINAPI IsAppThemed(void)
|
||||
{
|
||||
FIXME("\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL WINAPI IsThemeActive(void)
|
||||
{
|
||||
FIXME("\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
HRESULT WINAPI EnableThemeDialogTexture(HWND hwnd, DWORD dwFlags) {
|
||||
FIXME("%p 0x%08lx\n", hwnd, dwFlags);
|
||||
return ERROR_CALL_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
HRESULT WINAPI EnableTheming(BOOL fEnable) {
|
||||
FIXME("%d\n", fEnable);
|
||||
return ERROR_CALL_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR pszClassList) {
|
||||
FIXME("%p %s\n", hwnd, debugstr_w(pszClassList));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
HRESULT WINAPI SetWindowTheme(HWND hwnd, LPCWSTR pszSubAppName,
|
||||
LPCWSTR pszSubIdList) {
|
||||
FIXME("%p %s %s\n", hwnd, debugstr_w(pszSubAppName),
|
||||
debugstr_w(pszSubIdList));
|
||||
return ERROR_CALL_NOT_IMPLEMENTED;
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
@ stub CloseThemeData
|
||||
@ stub DrawThemeBackground
|
||||
@ stub DrawThemeBackgroundEx
|
||||
@ stub DrawThemeEdge
|
||||
@ stub DrawThemeIcon
|
||||
@ stub DrawThemeParentBackground
|
||||
@ stub DrawThemeText
|
||||
@ stdcall EnableThemeDialogTexture(ptr long)
|
||||
@ stdcall EnableTheming(long)
|
||||
@ stub GetCurrentThemeName
|
||||
@ stub GetThemeAppProperties
|
||||
@ stub GetThemeBackgroundContentRect
|
||||
@ stub GetThemeBackgroundExtent
|
||||
@ stub GetThemeBackgroundRegion
|
||||
@ stub GetThemeBool
|
||||
@ stub GetThemeColor
|
||||
@ stub GetThemeDocumentationProperty
|
||||
@ stub GetThemeEnumValue
|
||||
@ stub GetThemeFilename
|
||||
@ stub GetThemeFont
|
||||
@ stub GetThemeInt
|
||||
@ stub GetThemeIntList
|
||||
@ stub GetThemeMargins
|
||||
@ stub GetThemeMetric
|
||||
@ stub GetThemePartSize
|
||||
@ stub GetThemePosition
|
||||
@ stub GetThemePropertyOrigin
|
||||
@ stub GetThemeRect
|
||||
@ stub GetThemeString
|
||||
@ stub GetThemeSysBool
|
||||
@ stub GetThemeSysColor
|
||||
@ stub GetThemeSysColorBrush
|
||||
@ stub GetThemeSysFont
|
||||
@ stub GetThemeSysInt
|
||||
@ stub GetThemeSysSize
|
||||
@ stub GetThemeSysString
|
||||
@ stub GetThemeTextExtent
|
||||
@ stub GetThemeTextMetrics
|
||||
@ stub GetWindowTheme
|
||||
@ stub HitTestThemeBackground
|
||||
@ stdcall IsAppThemed()
|
||||
@ stdcall IsThemeActive()
|
||||
@ stub IsThemeBackgroundPartiallyTransparent
|
||||
@ stub IsThemeDialogTextureEnabled
|
||||
@ stub IsThemePartDefined
|
||||
@ stdcall OpenThemeData(ptr wstr)
|
||||
@ stub SetThemeAppProperties
|
||||
@ stdcall SetWindowTheme(ptr wstr wstr)
|
|
@ -167,6 +167,7 @@ WINDOWS_INCLUDES = \
|
|||
tlhelp32.h \
|
||||
tmschema.h \
|
||||
uuids.h \
|
||||
uxtheme.h \
|
||||
ver.h \
|
||||
vfw.h \
|
||||
vfwmsgs.h \
|
||||
|
|
|
@ -0,0 +1,156 @@
|
|||
/*
|
||||
* Win32 5.1 theme definitions
|
||||
*
|
||||
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __WINE_UXTHEME_H
|
||||
#define __WINE_UXTHEME_H
|
||||
|
||||
#include <commctrl.h>
|
||||
|
||||
typedef HANDLE HTHEME;
|
||||
|
||||
HRESULT WINAPI CloseThemeData(HTHEME hTheme);
|
||||
HRESULT WINAPI DrawThemeBackground(HTHEME,HDC,int,int,const RECT*,const RECT*);
|
||||
|
||||
typedef struct _DTBGOPTS {
|
||||
DWORD dwSize;
|
||||
DWORD dwFlags;
|
||||
RECT rcClip;
|
||||
} DTBGOPTS, *PDTBGOPTS;
|
||||
|
||||
HRESULT WINAPI DrawThemeBackgroundEx(HTHEME,HDC,int,int,const RECT*,
|
||||
const DTBGOPTS*);
|
||||
HRESULT WINAPI DrawThemeEdge(HTHEME,HDC,int,int,const RECT*,UINT,UINT,
|
||||
RECT*);
|
||||
HRESULT WINAPI DrawThemeIcon(HTHEME,HDC,int,int,const RECT*,HIMAGELIST,int);
|
||||
HRESULT WINAPI DrawThemeParentBackground(HWND,HDC,RECT*);
|
||||
|
||||
#define DTT_GRAYED 0x1
|
||||
|
||||
HRESULT WINAPI DrawThemeText(HTHEME,HDC,int,int,LPCWSTR,int,DWORD,DWORD,
|
||||
const RECT*);
|
||||
|
||||
#define ETDT_DISABLE 0x00000001
|
||||
#define ETDT_ENABLE 0x00000002
|
||||
#define ETDT_USETABTEXTURE 0x00000004
|
||||
#define ETDT_ENABLETAB (ETDT_ENABLE|ETDT_USETABTEXTURE)
|
||||
|
||||
HRESULT WINAPI EnableThemeDialogTexture(HWND,DWORD);
|
||||
HRESULT WINAPI EnableTheming(BOOL);
|
||||
HRESULT WINAPI GetCurrentThemeName(LPWSTR,int,LPWSTR,int,LPWSTR,int);
|
||||
|
||||
#define STAP_ALLOW_NONCLIENT (1<<0)
|
||||
#define STAP_ALLOW_CONTROLS (1<<1)
|
||||
#define STAP_ALLOW_WEBCONTENT (1<<2)
|
||||
|
||||
DWORD WINAPI GetThemeAppProperties();
|
||||
HRESULT WINAPI GetThemeBackgroundContentRect(HTHEME,HDC,int,int,
|
||||
const RECT*,RECT*);
|
||||
HRESULT WINAPI GetThemeBackgroundExtent(HTHEME,HDC,int,int,const RECT*,RECT*);
|
||||
HRESULT WINAPI GetThemeBackgroundRegion(HTHEME,HDC,int,int,const RECT*,HRGN*);
|
||||
HRESULT WINAPI GetThemeBool(HTHEME,int,int,int,BOOL*);
|
||||
HRESULT WINAPI GetThemeColor(HTHEME,int,int,int,COLORREF*);
|
||||
|
||||
#define SZ_THDOCPROP_DISPLAYNAME L"DisplayName"
|
||||
#define SZ_THDOCPROP_CANONICALNAME L"ThemeName"
|
||||
#define SZ_THDOCPROP_TOOLTIP L"ToolTip"
|
||||
#define SZ_THDOCPROP_AUTHOR L"author"
|
||||
|
||||
HRESULT WINAPI GetThemeDocumentationProperty(LPCWSTR,LPCWSTR,LPWSTR,int);
|
||||
HRESULT WINAPI GetThemeEnumValue(HTHEME,int,int,int,int*);
|
||||
HRESULT WINAPI GetThemeFilename(HTHEME,int,int,int,LPWSTR,int);
|
||||
HRESULT WINAPI GetThemeFont(HTHEME,HDC,int,int,int,LOGFONTW*);
|
||||
HRESULT WINAPI GetThemeInt(HTHEME,int,int,int,int*);
|
||||
|
||||
#define MAX_INTLIST_COUNT 10
|
||||
typedef struct _INTLIST {
|
||||
int iValueCount;
|
||||
int iValues[MAX_INTLIST_COUNT];
|
||||
} INTLIST, *PINTLIST;
|
||||
|
||||
HRESULT WINAPI GetThemeIntList(HTHEME,int,int,int,INTLIST*);
|
||||
|
||||
typedef struct _MARGINS {
|
||||
int cxLeftWidth;
|
||||
int cxRightWidth;
|
||||
int cyTopHeight;
|
||||
int cyBottomHeight;
|
||||
} MARGINS, *PMARGINS;
|
||||
|
||||
HRESULT WINAPI GetThemeMargins(HTHEME,HDC,int,int,int,RECT*,MARGINS*);
|
||||
HRESULT WINAPI GetThemeMetric(HTHEME,HDC,int,int,int,int*);
|
||||
|
||||
typedef enum {
|
||||
TS_MIN,
|
||||
TS_TRUE,
|
||||
TS_DRAW
|
||||
} THEMESIZE;
|
||||
|
||||
HRESULT WINAPI GetThemePartSize(HTHEME,HDC,int,int,RECT*,THEMESIZE,SIZE*);
|
||||
HRESULT WINAPI GetThemePosition(HTHEME,int,int,int,POINT*);
|
||||
|
||||
typedef enum {
|
||||
PO_STATE,
|
||||
PO_PART,
|
||||
PO_CLASS,
|
||||
PO_GLOBAL,
|
||||
PO_NOTFOUND
|
||||
} PROPERTYORIGIN;
|
||||
|
||||
HRESULT WINAPI GetThemePropertyOrigin(HTHEME,int,int,int,PROPERTYORIGIN*);
|
||||
HRESULT WINAPI GetThemeRect(HTHEME,int,int,int,RECT*);
|
||||
HRESULT WINAPI GetThemeString(HTHEME,int,int,int,LPWSTR,int);
|
||||
BOOL WINAPI GetThemeSysBool(HTHEME,int);
|
||||
COLORREF WINAPI GetThemeSysColor(HTHEME,int);
|
||||
HBRUSH WINAPI GetThemeSysColorBrush(HTHEME,int);
|
||||
HRESULT WINAPI GetThemeSysFont(HTHEME,int,LOGFONTW*);
|
||||
HRESULT WINAPI GetThemeSysInt(HTHEME,int,int*);
|
||||
int WINAPI GetThemeSysSize(HTHEME,int);
|
||||
HRESULT WINAPI GetThemeSysString(HTHEME,int,LPWSTR,int);
|
||||
HRESULT WINAPI GetThemeTextExtent(HTHEME,HDC,int,int,LPCWSTR,int,DWORD,
|
||||
const RECT*,RECT*);
|
||||
HRESULT WINAPI GetThemeTextMetrics(HTHEME,HDC,int,int,TEXTMETRICW*);
|
||||
HTHEME WINAPI GetWindowTheme(HWND);
|
||||
|
||||
#define HTTB_BACKGROUNDSEG 0x0000
|
||||
#define HTTB_FIXEDBORDER 0x0002
|
||||
#define HTTB_CAPTION 0x0004
|
||||
#define HTTB_RESIZINGBORDER_LEFT 0x0010
|
||||
#define HTTB_RESIZINGBORDER_TOP 0x0020
|
||||
#define HTTB_RESIZINGBORDER_RIGHT 0x0040
|
||||
#define HTTB_RESIZINGBORDER_BOTTOM 0x0080
|
||||
#define HTTB_RESIZINGBORDER \
|
||||
(HTTB_RESIZINGBORDER_LEFT|HTTB_RESIZINGBORDER_TOP|\
|
||||
HTTB_RESIZINGBORDER_RIGHT|HTTB_RESIZINGBORDER_BOTTOM)
|
||||
#define HTTB_SIZINGTEMPLATE 0x0100
|
||||
#define HTTB_SYSTEMSIZINGMARGINS 0x0200
|
||||
|
||||
HRESULT WINAPI HitTestThemeBackground(HTHEME,HDC,int,int,DWORD,const RECT*,
|
||||
HRGN,POINT,WORD*);
|
||||
BOOL WINAPI IsAppThemed();
|
||||
BOOL WINAPI IsThemeActive();
|
||||
BOOL WINAPI IsThemeBackgroundPartiallyTransparent(HTHEME,int,int);
|
||||
BOOL WINAPI IsThemeDialogTextureEnabled();
|
||||
BOOL WINAPI IsThemePartDefined(HTHEME,int,int);
|
||||
HTHEME WINAPI OpenThemeData(HWND,LPCWSTR);
|
||||
void WINAPI SetThemeAppProperties(DWORD);
|
||||
HRESULT WINAPI SetWindowTheme(HWND,LPCWSTR,LPCWSTR);
|
||||
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue