]> git.saurik.com Git - wxWidgets.git/commitdiff
Attempt to make wxWindows play better with XP themes
authorJulian Smart <julian@anthemion.co.uk>
Mon, 2 Jun 2003 10:27:03 +0000 (10:27 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Mon, 2 Jun 2003 10:27:03 +0000 (10:27 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20852 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

17 files changed:
distrib/msw/tmake/filelist.txt
include/wx/defs.h
include/wx/msw/notebook.h
include/wx/msw/setup0.h
include/wx/msw/uxtheme.h
samples/notebook/notebook.cpp
src/msw/bmpbuttn.cpp
src/msw/control.cpp
src/msw/files.lst
src/msw/makefile.b32
src/msw/makefile.g95
src/msw/makefile.vc
src/msw/makefile.wat
src/msw/notebook.cpp
src/msw/uxtheme.cpp
src/msw/window.cpp
src/wxWindows.dsp

index 0b300e0919612543026a35a6c3e5a42fa85704bc..f7f20f692b473b1f94641d66c8572ea137ea1038 100644 (file)
@@ -365,6 +365,7 @@ treectrl.cpp        MSW     Win32Only
 utils.cpp      MSW     Base,LowLevel
 utilsexc.cpp   MSW     Base,LowLevel
 uuid.cpp       MSW     OLE,LowLevel
+uxtheme.cpp    MSW
 volume.cpp     MSW     Base
 wave.cpp       MSW     LowLevel
 window.cpp     MSW     LowLevel
index bde449e9c80410e5d4d54b288c7772f2e7e8201a..142a46ede1a4f764dba59f6ff618329ba6bd07b4 100644 (file)
@@ -1000,6 +1000,11 @@ enum wxBorder
 // parent is destroyed before the child
 #define wxWS_EX_TRANSIENT               0x00000004
 
+// don't paint the window background, we'll assume it will
+// be done by a theming engine. This is not yet used but could
+// possibly be made to work in the future, at least on Windows
+#define wxWS_EX_THEMED_BACKGROUND       0x00000008
+
 // Use this style to add a context-sensitive help to the window (currently for
 // Win32 only and it doesn't work if wxMINIMIZE_BOX or wxMAXIMIZE_BOX are used)
 #define wxFRAME_EX_CONTEXTHELP  0x00000004
index f515dada988bac85e6d54c03ff4d0afee460cdc0..714f15cda74159f5e9d36d66a66016cf7a12e2a1 100644 (file)
@@ -96,6 +96,9 @@ public:
     // set the padding between tabs (in pixels)
   void SetPadding(const wxSize& padding);
 
+    // Windows only: attempts to get colour for UX theme page background
+  wxColour GetThemeBackgroundColour();
+
   // operations
   // ----------
     // remove all pages
@@ -112,6 +115,8 @@ public:
     // style.
   void SetTabSize(const wxSize& sz);
 
+    // Windows only: attempts to apply the UX theme page background to this page
+  void ApplyThemeBackground(wxWindow* window, const wxColour& colour);
 
   // Hit test
   int HitTest(const wxPoint& pt, long& flags);
index 524f8adb0880d761313e877e1dce74bd50c8dd0e..ab50ac6dc60ce95e72896513887c08533d1f56c9 100644 (file)
 // Recommended setting: 1, set to 0 for a small library size reduction
 #define wxUSE_OWNER_DRAWN 1
 
+// Set to 1 to compile MS Windows XP theme engine support
+#define wxUSE_UXTHEME           1
+
+// Set to 1 to auto-adapt to MS Windows XP themes where possible
+// (notably, wxNotebook pages)
+#define wxUSE_UXTHEME_AUTO      1
+
 // ----------------------------------------------------------------------------
 // obsolete settings
 // ----------------------------------------------------------------------------
index 666202b6785452dd04e8f56652a2ca267ec7ec99..f239045c8a8aac60bce26f9aa07884a7ff74e6a5 100644 (file)
@@ -9,6 +9,10 @@
 #ifndef _WX_UXTHEME_H_
 #define _WX_UXTHEME_H_
 
+#ifdef __GNUG__
+  #pragma interface "uxtheme.cpp"
+#endif
+
 // Use wxModule approach to initialization.
 #define WXU_USE_WXMODULE 1
 
@@ -73,11 +77,11 @@ typedef WXUHRESULT (__stdcall *PFNWXUGETTHEMEBACKGROUNDCONTENTRECT)(WXHTHEME, WX
 typedef WXUHRESULT (__stdcall *PFNWXUGETTHEMEBACKGROUNDEXTENT)(WXHTHEME, WXHDC, int, int, 
     const WXURECT *, WXURECT *) ;
 
-typedef enum WXUTHEMESIZE
+enum WXUTHEMESIZE
 {
     WXU_TS_MIN,             // minimum size
     WXU_TS_TRUE,            // size without stretching
-    WXU_TS_DRAW,            // size that theme mgr will use to draw part
+    WXU_TS_DRAW             // size that theme mgr will use to draw part
 };
 
 typedef struct tagWXUSIZE
@@ -145,7 +149,7 @@ typedef WXUHRESULT (__stdcall *PFNWXUDRAWTHEMEICON)(WXHTHEME, WXHDC, int, int,
     const WXURECT *, WXHIMAGELIST, int) ;
 typedef WXUBOOL (__stdcall *PFNWXUISTHEMEPARTDEFINED)(WXHTHEME, int, int) ;
 typedef WXUBOOL (__stdcall *PFNWXUISTHEMEBACKGROUNDPARTIALLYTRANSPARENT)(WXHTHEME, int, int) ;
-typedef WXUHRESULT (__stdcall *PFNWXUGETTHEMECOLOR)(WXHTHEME, int, int, int, WXCOLORREF) ;
+typedef WXUHRESULT (__stdcall *PFNWXUGETTHEMECOLOR)(WXHTHEME, int, int, int, WXCOLORREF*) ;
 typedef WXUHRESULT (__stdcall *PFNWXUGETTHEMEMETRIC)(WXHTHEME, WXHDC, int,
     int, int, int *) ;
 typedef WXUHRESULT (__stdcall *PFNWXUGETTHEMESTRING)(WXHTHEME, int,
@@ -191,7 +195,8 @@ typedef struct _WXUINTLIST
 } WXUINTLIST, *PWXUINTLIST;
 typedef WXUHRESULT (__stdcall *PFNWXUGETTHEMEINTLIST)(WXHTHEME, int,
        int, int, WXUINTLIST*) ;
-typedef enum WXUPROPERTYORIGIN
+
+enum WXUPROPERTYORIGIN
 {
     WXU_PO_STATE,           // property was found in the state section
     WXU_PO_PART,            // property was found in the part section
@@ -199,6 +204,7 @@ typedef enum WXUPROPERTYORIGIN
     WXU_PO_GLOBAL,          // property was found in [globals] section
     WXU_PO_NOTFOUND         // property was not found
 };
+
 typedef WXUHRESULT (__stdcall *PFNWXUGETTHEMEPROPERTYORIGIN)(WXHTHEME, int,
     int, int, enum WXUPROPERTYORIGIN *) ;
 typedef WXUHRESULT (__stdcall *PFNWXUSETWINDOWTHEME)(WXHWND, const wchar_t*, const wchar_t *) ;
@@ -241,7 +247,7 @@ typedef WXUHRESULT (__stdcall *PFNWXUGETTHEMEDOCUMENTATIONPROPERTY)(const wchar_
 typedef WXUHRESULT (__stdcall *PFNWXUDRAWTHEMEPARENTBACKGROUND)(WXHWND, WXHDC, WXURECT *) ;
 typedef WXUHRESULT (__stdcall *PFNWXUENABLETHEMING)(WXUBOOL) ;
 
-class wxUxThemeEngine
+class WXDLLEXPORT wxUxThemeEngine
 {
 private:
     wxUxThemeEngine() ;
@@ -256,6 +262,7 @@ private:
 
 public:
     static wxUxThemeEngine* wxInitUxThemeEngine() ;
+    static wxUxThemeEngine* Get() ;
 protected:
     void ResetFunctionPointers() ;
 public:
@@ -308,12 +315,12 @@ public:
     PFNWXUENABLETHEMING m_pfnEnableTheming ;
 };
 
-extern wxUxThemeEngine* g_pThemeEngine ;
+WXDLLEXPORT_DATA(extern wxUxThemeEngine*) g_pThemeEngine ;
 
-BOOL wxCanUseInitThemeEngine() ;
+WXDLLEXPORT BOOL wxCanUseInitThemeEngine() ;
 
 #if !defined(WXU_USE_WXMODULE)
-BOOL wxUxInitThemeEngine() ;
+WXDLLEXPORT BOOL wxUxInitThemeEngine() ;
 #endif
 
 #endif
index 940c084d5fb3d015af241800b24600c8cf5e1b36..e654d15bcf8e7cb201dd84cfaf2821ca9702710b 100644 (file)
@@ -439,7 +439,7 @@ void MyFrame::OnButtonAddPage( wxCommandEvent& WXUNUSED(event) )
     static size_t s_pageAdded = 0;
 
     wxPanel *panel = new wxPanel( m_notebook, -1 );
-    (void) new wxButton( panel, -1, wxT("Frist button"),
+    (void) new wxButton( panel, -1, wxT("First button"),
         wxPoint(10, 10), wxSize(-1, -1) );
     (void) new wxButton( panel, -1, wxT("Second button"),
         wxPoint(50, 100), wxSize(-1, -1) );
index ba336ee8220eb3a69ee138260dcbae1399bd800d..3ed26799e46a6ec47085bed952e95c93d8da3ae2 100644 (file)
@@ -234,7 +234,10 @@ void wxBitmapButton::DrawFace( WXHDC dc, int left, int top, int right, int botto
     penLight    = CreatePen(PS_SOLID, 0, GetSysColor(COLOR_3DLIGHT));
     penShadow   = CreatePen(PS_SOLID, 0, GetSysColor(COLOR_3DSHADOW));
     penDkShadow = CreatePen(PS_SOLID, 0, GetSysColor(COLOR_3DDKSHADOW));
-    brushFace   = CreateSolidBrush(GetSysColor(COLOR_BTNFACE));
+    // brushFace   = CreateSolidBrush(GetSysColor(COLOR_BTNFACE));
+    // Taking the background colour fits in better with
+    // Windows XP themes.
+    brushFace   = CreateSolidBrush(m_backgroundColour.m_pixel);
 
     // draw the rectangle
     RECT rect;
index 8be39b2fca205ff6f9f0c6fb41ab5b7c05ddadc6..bbb8d431dd825b4ba27b6b032699101e31aafb24 100644 (file)
@@ -269,7 +269,7 @@ WXHBRUSH wxControl::OnCtlColor(WXHDC pDC, WXHWND WXUNUSED(pWnd), WXUINT WXUNUSED
 #endif // wxUSE_CTL3D
 
     HDC hdc = (HDC)pDC;
-    if (GetParent()->GetTransparentBackground())
+    if (GetParent()->GetTransparentBackground() /* || (GetParent()->GetExtraStyle() & wxWS_EX_THEMED_BACKGROUND) */ )
         SetBkMode(hdc, TRANSPARENT);
     else
         SetBkMode(hdc, OPAQUE);
index 67153e59c3d5bfe867cb3f3a2b3f83c79dbefb3e..a80b758dc512c535dfedfde3c4e2bbc6daa7d656 100644 (file)
@@ -268,6 +268,7 @@ ALL_SOURCES = \
                msw/utilsexc.cpp \
                msw/ole/uuid.cpp \
                msw/volume.cpp \
+               msw/uxtheme.cpp \
                msw/wave.cpp \
                msw/window.cpp \
                html/helpctrl.cpp \
@@ -956,6 +957,7 @@ GUIOBJS = \
                treectrl.o \
                utils.o \
                utilsexc.o \
+               uxtheme.o \
                volume.o \
                wave.o \
                window.o
index 73331036f255d5aac3dec300488fe209e2fb06a8..d17d7be0fa39b1a5ebadcb22fc2f2a1b98319d53 100644 (file)
@@ -206,6 +206,7 @@ MSWOBJS = $(OBJ_PATH)\accel.obj \
                $(OBJ_PATH)\utils.obj \
                $(OBJ_PATH)\utilsexc.obj \
                $(OBJ_PATH)\uuid.obj \
+               $(OBJ_PATH)\uxtheme.obj \
                $(OBJ_PATH)\volume.obj \
                $(OBJ_PATH)\wave.obj \
                $(OBJ_PATH)\window.obj
@@ -915,6 +916,8 @@ $(OBJ_PATH)\utilsexc.obj: $(MSWDIR)\utilsexc.$(SRCSUFF)
 
 $(OBJ_PATH)\uuid.obj: $(OLEDIR)\uuid.$(SRCSUFF)
 
+$(OBJ_PATH)\uxtheme.obj: $(MSWDIR)\uxtheme.$(SRCSUFF)
+
 $(OBJ_PATH)\volume.obj: $(MSWDIR)\volume.$(SRCSUFF)
 
 $(OBJ_PATH)\wave.obj: $(MSWDIR)\wave.$(SRCSUFF)
index 88431a26aac5f2dd47d1d8f22af7a66c7ed46504..bfdf552f88b14b53964ba3118f4d698b8599de6c 100644 (file)
@@ -371,6 +371,7 @@ MSWOBJS     = \
                $(MSWDIR)/tooltip.$(OBJSUFF) \
                $(MSWDIR)/toplevel.$(OBJSUFF) \
                $(MSWDIR)/treectrl.$(OBJSUFF) \
+               $(MSWDIR)/uxtheme.$(OBJSUFF) \
                $(MSWDIR)/wave.$(OBJSUFF) \
                $(MSWDIR)/window.$(OBJSUFF)
 
index c53425c153758f258f240f4977d4301278c3a015..e39c827965eb24b4719863ba6e3952b672a4dfcc 100644 (file)
@@ -371,6 +371,7 @@ MSWOBJS = $(MSWDIR)\$D\accel.obj \
                $(MSWDIR)\$D\utils.obj \
                $(MSWDIR)\$D\utilsexc.obj \
                $(OLEDIR)\$D\uuid.obj \
+               $(OLEDIR)\$D\uxtheme.obj \
                $(MSWDIR)\$D\volume.obj \
                $(MSWDIR)\$D\wave.obj \
                $(MSWDIR)\$D\window.obj
index f761301802559e35c739230e019e6946e5a04622..97285fd859c3ad3ca4149a277e3d680b4a1a4544 100644 (file)
@@ -316,6 +316,7 @@ MSWOBJS = $(OUTPUTDIR)\accel.obj &
        $(OUTPUTDIR)\utils.obj &
        $(OUTPUTDIR)\utilsexc.obj &
        $(OUTPUTDIR)\uuid.obj &
+       $(OUTPUTDIR)\uxtheme.obj &
        $(OUTPUTDIR)\volume.obj &
        $(OUTPUTDIR)\wave.obj &
        $(OUTPUTDIR)\window.obj
index fda283e4965679ccdd50267b053df6463364d519..25ff1ce8a66998d9ef5a8bffdd3d350dc9c52b4c 100644 (file)
     #include <commctrl.h>
 #endif
 
+#include "wx/msw/winundef.h"
+
+#if wxUSE_UXTHEME
+#include "wx/msw/uxtheme.h"
+
+#include "wx/radiobut.h"
+#include "wx/radiobox.h"
+#include "wx/checkbox.h"
+#include "wx/bmpbuttn.h"
+#include "wx/statline.h"
+#include "wx/statbox.h"
+#include "wx/stattext.h"
+#include "wx/slider.h"
+#include "wx/scrolwin.h"
+#include "wx/panel.h"
+#endif
+
 // ----------------------------------------------------------------------------
 // macros
 // ----------------------------------------------------------------------------
@@ -439,6 +456,17 @@ bool wxNotebook::InsertPage(int nPage,
     wxASSERT_MSG( pPage->GetParent() == this,
                     _T("notebook pages must have notebook as parent") );
 
+#if wxUSE_UXTHEME && wxUSE_UXTHEME_AUTO
+    // Automatically apply the theme background,
+    // changing the colour of the panel to match the
+    // tab page colour. This won't work well with all
+    // themes but it's a start.
+    if (wxUxThemeEngine::Get() && pPage->IsKindOf(CLASSINFO(wxPanel)))
+    {
+        ApplyThemeBackground(pPage, GetThemeBackgroundColour());
+    }
+#endif
+
     // add a new tab to the control
     // ----------------------------
 
@@ -719,4 +747,67 @@ bool wxNotebook::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM* result)
   return processed;
 }
 
+// Windows only: attempts to get colour for UX theme page background
+wxColour wxNotebook::GetThemeBackgroundColour()
+{
+#if wxUSE_UXTHEME
+    if (wxUxThemeEngine::Get())
+    {
+        WXHTHEME hTheme = wxUxThemeEngine::Get()->m_pfnOpenThemeData(GetHWND(), L"TAB");
+        if (hTheme)
+        {
+            // This is total guesswork.
+            // See PlatformSDK\Include\Tmschema.h for values
+            COLORREF themeColor;
+            wxUxThemeEngine::Get()->
+                m_pfnGetThemeColor(hTheme,
+                10 /* TABP_BODY */,
+                1 /* NORMAL */,
+                3821, /* FILLCOLORHINT */
+                & themeColor);
+            
+            wxUxThemeEngine::Get()->m_pfnCloseThemeData(hTheme);
+            
+            wxColour colour(GetRValue(themeColor), GetGValue(themeColor), GetBValue(themeColor));
+            return colour;
+        }
+    }
+#endif
+    return GetBackgroundColour();
+}
+
+// Windows only: attempts to apply the UX theme page background to this page
+void wxNotebook::ApplyThemeBackground(wxWindow* window, const wxColour& colour)
+{
+#if wxUSE_UXTHEME
+    // Don't set the background for buttons since this will
+    // switch it into ownerdraw mode
+    if (window->IsKindOf(CLASSINFO(wxButton)) && !window->IsKindOf(CLASSINFO(wxBitmapButton)))
+        // This is essential, otherwise you'll see dark grey
+        // corners in the buttons.
+        ((wxButton*)window)->wxControl::SetBackgroundColour(colour);
+    else if (window->IsKindOf(CLASSINFO(wxStaticText)) ||
+             window->IsKindOf(CLASSINFO(wxStaticBox)) ||
+             window->IsKindOf(CLASSINFO(wxStaticLine)) ||
+             window->IsKindOf(CLASSINFO(wxRadioButton)) ||
+             window->IsKindOf(CLASSINFO(wxRadioBox)) ||
+             window->IsKindOf(CLASSINFO(wxCheckBox)) ||
+             window->IsKindOf(CLASSINFO(wxBitmapButton)) ||
+             window->IsKindOf(CLASSINFO(wxSlider)) ||
+             window->IsKindOf(CLASSINFO(wxPanel)) ||
+             (window->IsKindOf(CLASSINFO(wxNotebook)) && (window != this)) ||
+             window->IsKindOf(CLASSINFO(wxScrolledWindow))
+        )
+    {
+        window->SetBackgroundColour(colour);
+    }
+
+    for ( wxWindowList::Node *node = window->GetChildren().GetFirst(); node; node = node->GetNext() )
+    {
+        wxWindow *child = node->GetData();
+        ApplyThemeBackground(child, colour);
+    }
+#endif
+}
+
 #endif // wxUSE_NOTEBOOK
index d241efe2a3b6436f72e6e6b1186133ae94b1cbab..41dbe567269bf9407648f1a1801c4f84797c56cb 100644 (file)
@@ -6,10 +6,29 @@
  * __stdcall calling convention
  */
 
+#ifdef __GNUG__
+#pragma implementation "uxtheme.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+    #include "wx/app.h"
+    #include "wx/toplevel.h"
+    #include "wx/string.h"
+    #include "wx/log.h"
+#endif //WX_PRECOMP
+
+#if wxUSE_UXTHEME
+
 #include <windows.h>
 
 #include "wx/msw/winundef.h"
-#include "wx/wx.h"
 #include "wx/msw/uxtheme.h"
 #include "wx/msw/private.h"
 #include "wx/app.h"         // for GetComCtl32Version
@@ -45,6 +64,11 @@ wxUxThemeEngine* wxUxThemeEngine::wxInitUxThemeEngine()
     return pThemeEngine ;
 }
 
+wxUxThemeEngine* wxUxThemeEngine::Get()
+{
+    return g_pThemeEngine;
+}
+
 #ifdef WXU_USE_WXMODULE
 class wxUxThemeModule : public wxModule
 {
@@ -245,3 +269,6 @@ wxUxThemeEngine::~wxUxThemeEngine()
     ResetFunctionPointers() ;
 }
 
+#endif
+    // wxUSE_UXTHEME
+
index 54c791ddad23ac6cf5f5e0b1ef684e45ff4fc1cb..f67e46e9be294ce6e9e594b267a1eedecb83671b 100644 (file)
@@ -3738,6 +3738,9 @@ extern wxCOLORMAP *wxGetStdColourMap()
 
 bool wxWindowMSW::HandlePaint()
 {
+//    if (GetExtraStyle() & wxWS_EX_THEMED_BACKGROUND)
+//        return FALSE;
+    
 #ifdef __WIN32__
     HRGN hRegion = ::CreateRectRgn(0, 0, 0, 0); // Dummy call to get a handle
     if ( !hRegion )
@@ -3790,6 +3793,29 @@ bool wxWindowMSW::HandleEraseBkgnd(WXHDC hdc)
     if ( ::IsIconic(GetHwnd()) )
         return TRUE;
 
+#if 0
+    if (GetParent() && GetParent()->GetExtraStyle() & wxWS_EX_THEMED_BACKGROUND)
+    {
+        return FALSE;
+    }
+
+    if (GetExtraStyle() & wxWS_EX_THEMED_BACKGROUND)
+    {
+        if (wxUxThemeEngine::Get())
+        {
+            WXHTHEME hTheme = wxUxThemeEngine::Get()->m_pfnOpenThemeData(GetHWND(), L"TAB");
+            if (hTheme)
+            {
+                WXURECT rect;
+                ::GetClientRect((HWND) GetHWND(), (RECT*) & rect);
+                wxUxThemeEngine::Get()->m_pfnDrawThemeBackground(hTheme, hdc, 10 /* TABP_BODY */, 0, &rect, &rect);
+                wxUxThemeEngine::Get()->m_pfnCloseThemeData(hTheme);
+                return TRUE;
+            }
+        }
+    }
+#endif
+    
     wxDCTemp dc(hdc);
 
     dc.SetHDC(hdc);
index 41d43927887d7606e83f8f4f328794423a35f39b..b96d4eb66a1d0e29ac7a7a11f482a9018dfd2838 100644 (file)
@@ -2,8 +2,8 @@
 # Microsoft Developer Studio Generated Build File, Format Version 6.00
 # ** DO NOT EDIT **
 
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
 # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
 
 CFG=wxWindows - Win32 Debug
 !MESSAGE This is not a valid makefile. To build this project using NMAKE,
@@ -32,8 +32,6 @@ CFG=wxWindows - Win32 Debug
 # PROP AllowPerConfigDependencies 0
 # PROP Scc_ProjName ""
 # PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
 
 !IF  "$(CFG)" == "wxWindows - Win32 Release Unicode DLL"
 
@@ -48,10 +46,13 @@ RSC=rc.exe
 # PROP Intermediate_Dir "../ReleaseUnicodeDll"
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
+CPP=cl.exe
 # ADD BASE CPP /nologo /MD /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WXWINDLL_EXPORTS" /YX /FD /c
 # ADD CPP /nologo /MD /W4 /O2 /I "../lib/mswdllu" /I "../include" /I "./zlib" /I "./jpeg" /I "./png" /I "./regex" /I "./tiff" /D "_USRDLL" /D "WIN32" /D "NDEBUG" /D WINVER=0x0400 /D "STRICT" /D "WXMAKINGDLL" /D "_UNICODE" /D "UNICODE" /Yu"wx/wxprec.h" /FD /c
+MTL=midl.exe
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+RSC=rc.exe
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
 # ADD RSC /l 0x409 /i "../include" /d "NDEBUG"
 BSC32=bscmake.exe
@@ -74,17 +75,20 @@ LINK32=link.exe
 # PROP Intermediate_Dir "../DebugUnicodeDll"
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
+CPP=cl.exe
 # ADD BASE CPP /nologo /MDd /W4 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WXWINDLL_EXPORTS" /YX /FD /GZ /c
 # ADD CPP /nologo /MDd /W4 /Zi /Od /I "../lib/mswdllud" /I "../include" /I "./zlib" /I "./jpeg" /I "./png" /I "./regex" /I "./tiff" /D "_USRDLL" /D "WIN32" /D "_DEBUG" /D WINVER=0x0400 /D "STRICT" /D "WXMAKINGDLL" /D "_UNICODE" /D "UNICODE" /Yu"wx/wxprec.h" /FD /c
+MTL=midl.exe
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+RSC=rc.exe
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
 # ADD RSC /l 0x409 /i "../include" /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib ..\lib\jpegd.lib ..\lib\tiffd.lib ..\lib\pngd.lib ..\lib\regexd.lib ..\lib\zlibd.lib /dll /debug /machine:I386 /pdbtype:sept /out:"../lib/wxmsw250ud.dll"
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib ..\lib\jpegd.lib ..\lib\tiffd.lib ..\lib\pngd.lib ..\lib\regexd.lib ..\lib\zlibd.lib /dll /debug /machine:I386 /out:"../lib/wxmsw250ud.dll" /pdbtype:sept
 # ADD LINK32 kernel32.lib user32.lib gdi32.lib advapi32.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib odbc32.lib uuid.lib rpcrt4.lib comctl32.lib wsock32.lib winmm.lib ..\lib\jpegd.lib ..\lib\tiffd.lib ..\lib\pngd.lib ..\lib\regexd.lib ..\lib\zlibd.lib /nologo /version:2.5 /dll /machine:I386 /out:"../lib/wxmsw250ud.dll"
 
 !ELSEIF  "$(CFG)" == "wxWindows - Win32 Release Unicode"
@@ -99,8 +103,10 @@ LINK32=link.exe
 # PROP Output_Dir "../lib"
 # PROP Intermediate_Dir "../ReleaseUnicode"
 # PROP Target_Dir ""
+CPP=cl.exe
 # ADD BASE CPP /nologo /MD /W4 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
 # ADD CPP /nologo /MD /W4 /O2 /I "../lib/mswu" /I "../include" /I "./zlib" /I "./jpeg" /I "./png" /I "./regex" /I "./tiff" /D "WIN32" /D "NDEBUG" /D WINVER=0x0400 /D "STRICT" /D "_UNICODE" /D "UNICODE" /Yu"wx/wxprec.h" /FD /c
+RSC=rc.exe
 # ADD BASE RSC /l 0x409
 # ADD RSC /l 0x409
 BSC32=bscmake.exe
@@ -122,8 +128,10 @@ LIB32=link.exe -lib
 # PROP Output_Dir "../lib"
 # PROP Intermediate_Dir "../DebugUnicode"
 # PROP Target_Dir ""
+CPP=cl.exe
 # ADD BASE CPP /nologo /MDd /W4 /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
 # ADD CPP /nologo /MDd /W4 /Zi /Od /I "../lib/mswud" /I "../include" /I "./zlib" /I "./jpeg" /I "./png" /I "./regex" /I "./tiff" /D "WIN32" /D "_DEBUG" /D "__WXDEBUG__" /D WINVER=0x0400 /D "STRICT" /D "_UNICODE" /D "UNICODE" /Yu"wx/wxprec.h" /FD /c
+RSC=rc.exe
 # ADD BASE RSC /l 0x409
 # ADD RSC /l 0x409
 BSC32=bscmake.exe
@@ -146,10 +154,13 @@ LIB32=link.exe -lib
 # PROP Intermediate_Dir "../ReleaseDll"
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
+CPP=cl.exe
 # ADD BASE CPP /nologo /MD /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WXWINDLL_EXPORTS" /YX /FD /c
 # ADD CPP /nologo /MD /W4 /O2 /I "../lib/mswdll" /I "../include" /I "./zlib" /I "./jpeg" /I "./png" /I "./regex" /I "./tiff" /D "_USRDLL" /D "WIN32" /D "NDEBUG" /D WINVER=0x0400 /D "STRICT" /D "WXMAKINGDLL" /Yu"wx/wxprec.h" /FD /c
+MTL=midl.exe
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+RSC=rc.exe
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
 # ADD RSC /l 0x409 /i "../include" /d "NDEBUG"
 BSC32=bscmake.exe
@@ -172,17 +183,20 @@ LINK32=link.exe
 # PROP Intermediate_Dir "../DebugDll"
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
+CPP=cl.exe
 # ADD BASE CPP /nologo /MDd /W4 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WXWINDLL_EXPORTS" /YX /FD /GZ /c
 # ADD CPP /nologo /MDd /W4 /Zi /Od /I "../lib/mswdlld" /I "../include" /I "./zlib" /I "./jpeg" /I "./png" /I "./regex" /I "./tiff" /D "_USRDLL" /D "WIN32" /D "_DEBUG" /D WINVER=0x0400 /D "STRICT" /D "WXMAKINGDLL" /Yu"wx/wxprec.h" /FD /c
+MTL=midl.exe
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+RSC=rc.exe
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
 # ADD RSC /l 0x409 /i "../include" /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib ..\lib\jpegd.lib ..\lib\tiffd.lib ..\lib\pngd.lib ..\lib\regexd.lib ..\lib\zlibd.lib /dll /debug /machine:I386 /pdbtype:sept /out:"../lib/wxmsw250d.dll"
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib ..\lib\jpegd.lib ..\lib\tiffd.lib ..\lib\pngd.lib ..\lib\regexd.lib ..\lib\zlibd.lib /dll /debug /machine:I386 /out:"../lib/wxmsw250d.dll" /pdbtype:sept
 # ADD LINK32 kernel32.lib user32.lib gdi32.lib advapi32.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib odbc32.lib uuid.lib rpcrt4.lib comctl32.lib wsock32.lib winmm.lib ..\lib\jpegd.lib ..\lib\tiffd.lib ..\lib\pngd.lib ..\lib\regexd.lib ..\lib\zlibd.lib /nologo /version:2.5 /dll /machine:I386 /out:"../lib/wxmsw250d.dll"
 
 !ELSEIF  "$(CFG)" == "wxWindows - Win32 Release"
@@ -197,8 +211,10 @@ LINK32=link.exe
 # PROP Output_Dir "../lib"
 # PROP Intermediate_Dir "../Release"
 # PROP Target_Dir ""
+CPP=cl.exe
 # ADD BASE CPP /nologo /MD /W4 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
 # ADD CPP /nologo /MD /W4 /O2 /I "../lib/msw" /I "../include" /I "./zlib" /I "./jpeg" /I "./png" /I "./regex" /I "./tiff" /D "WIN32" /D "NDEBUG" /D WINVER=0x0400 /D "STRICT" /Yu"wx/wxprec.h" /FD /c
+RSC=rc.exe
 # ADD BASE RSC /l 0x409
 # ADD RSC /l 0x409
 BSC32=bscmake.exe
@@ -220,8 +236,10 @@ LIB32=link.exe -lib
 # PROP Output_Dir "../lib"
 # PROP Intermediate_Dir "../Debug"
 # PROP Target_Dir ""
+CPP=cl.exe
 # ADD BASE CPP /nologo /MDd /W4 /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
 # ADD CPP /nologo /MDd /W4 /Zi /Od /I "../lib/mswd" /I "../include" /I "./zlib" /I "./jpeg" /I "./png" /I "./regex" /I "./tiff" /D "WIN32" /D "_DEBUG" /D "__WXDEBUG__" /D WINVER=0x0400 /D "STRICT" /Yu"wx/wxprec.h" /FD /c
+RSC=rc.exe
 # ADD BASE RSC /l 0x409
 # ADD RSC /l 0x409
 BSC32=bscmake.exe
@@ -392,6 +410,11 @@ SOURCE=.\common\event.cpp
 # End Source File
 # Begin Source File
 
+SOURCE=.\common\extended.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
 SOURCE=.\common\fddlgcmn.cpp
 # End Source File
 # Begin Source File
@@ -720,6 +743,11 @@ SOURCE=.\common\txtstrm.cpp
 # End Source File
 # Begin Source File
 
+SOURCE=.\common\unzip.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
 SOURCE=.\common\url.cpp
 # End Source File
 # Begin Source File
@@ -766,18 +794,6 @@ SOURCE=.\common\zipstrm.cpp
 
 SOURCE=.\common\zstream.cpp
 # End Source File
-
-# Begin Source File
-
-SOURCE=.\common\extended.c
-# SUBTRACT CPP /YX /Yc /Yu
-# End Source File
-# Begin Source File
-
-SOURCE=.\common\unzip.c
-# SUBTRACT CPP /YX /Yc /Yu
-# End Source File
-
 # End Group
 # Begin Group "Generic Files"
 
@@ -890,7 +906,6 @@ SOURCE=.\generic\treectlg.cpp
 
 SOURCE=.\generic\wizard.cpp
 # End Source File
-
 # End Group
 # Begin Group "wxHTML Files"
 
@@ -975,18 +990,44 @@ SOURCE=.\html\m_tables.cpp
 
 SOURCE=.\html\winpars.cpp
 # End Source File
-
 # End Group
 # Begin Group "MSW Files"
 
+# PROP Default_Filter ""
+# Begin Group "OLE Files"
+
 # PROP Default_Filter ""
 # Begin Source File
 
-SOURCE=.\msw\dummy.cpp
-# ADD CPP /Yc"wx/wxprec.h"
+SOURCE=.\msw\ole\access.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\msw\ole\automtn.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\msw\ole\dataobj.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\msw\ole\dropsrc.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\msw\ole\droptgt.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\msw\ole\oleutils.cpp
 # End Source File
 # Begin Source File
 
+SOURCE=.\msw\ole\uuid.cpp
+# End Source File
+# End Group
+# Begin Source File
+
 SOURCE=.\msw\accel.cpp
 # End Source File
 # Begin Source File
@@ -1107,6 +1148,11 @@ SOURCE=.\msw\dragimag.cpp
 # End Source File
 # Begin Source File
 
+SOURCE=.\msw\dummy.cpp
+# ADD CPP /Yc"wx/wxprec.h"
+# End Source File
+# Begin Source File
+
 SOURCE=.\msw\enhmeta.cpp
 # End Source File
 # Begin Source File
@@ -1159,6 +1205,16 @@ SOURCE=.\msw\glcanvas.cpp
 # End Source File
 # Begin Source File
 
+SOURCE=.\msw\gsocket.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=.\msw\gsockmsw.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
 SOURCE=.\msw\helpbest.cpp
 # End Source File
 # Begin Source File
@@ -1379,61 +1435,20 @@ SOURCE=.\msw\utilsexc.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=.\msw\volume.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\msw\wave.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\msw\window.cpp
-# End Source File
-
-# Begin Source File
-
-SOURCE=.\msw\gsocket.c
-# SUBTRACT CPP /YX /Yc /Yu
-# End Source File
-# Begin Source File
-
-SOURCE=.\msw\gsockmsw.c
-# SUBTRACT CPP /YX /Yc /Yu
-# End Source File
-
-# Begin Group "OLE Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\msw\ole\access.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\msw\ole\automtn.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\msw\ole\dataobj.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\msw\ole\dropsrc.cpp
+SOURCE=.\msw\uxtheme.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=.\msw\ole\droptgt.cpp
+SOURCE=.\msw\volume.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=.\msw\ole\oleutils.cpp
+SOURCE=.\msw\wave.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=.\msw\ole\uuid.cpp
+SOURCE=.\msw\window.cpp
 # End Source File
-
-# End Group
 # End Group
 # Begin Group "Headers"
 
@@ -1444,7 +1459,9 @@ SOURCE=.\msw\ole\uuid.cpp
 # Begin Source File
 
 SOURCE=..\include\wx\msw\setup.h
+
 !IF  "$(CFG)" == "wxWindows - Win32 Release Unicode DLL"
+
 # Begin Custom Build - Creating ..\lib\mswdllu\wx\setup.h from $(InputPath)
 InputPath=..\include\wx\msw\setup.h
 
@@ -1452,7 +1469,9 @@ InputPath=..\include\wx\msw\setup.h
        copy "$(InputPath)" ..\lib\mswdllu\wx\setup.h
 
 # End Custom Build
+
 !ELSEIF  "$(CFG)" == "wxWindows - Win32 Debug Unicode DLL"
+
 # Begin Custom Build - Creating ..\lib\mswdllud\wx\setup.h from $(InputPath)
 InputPath=..\include\wx\msw\setup.h
 
@@ -1460,7 +1479,9 @@ InputPath=..\include\wx\msw\setup.h
        copy "$(InputPath)" ..\lib\mswdllud\wx\setup.h
 
 # End Custom Build
+
 !ELSEIF  "$(CFG)" == "wxWindows - Win32 Release Unicode"
+
 # Begin Custom Build - Creating ..\lib\mswu\wx\setup.h from $(InputPath)
 InputPath=..\include\wx\msw\setup.h
 
@@ -1468,7 +1489,9 @@ InputPath=..\include\wx\msw\setup.h
        copy "$(InputPath)" ..\lib\mswu\wx\setup.h
 
 # End Custom Build
+
 !ELSEIF  "$(CFG)" == "wxWindows - Win32 Debug Unicode"
+
 # Begin Custom Build - Creating ..\lib\mswud\wx\setup.h from $(InputPath)
 InputPath=..\include\wx\msw\setup.h
 
@@ -1476,7 +1499,9 @@ InputPath=..\include\wx\msw\setup.h
        copy "$(InputPath)" ..\lib\mswud\wx\setup.h
 
 # End Custom Build
+
 !ELSEIF  "$(CFG)" == "wxWindows - Win32 Release DLL"
+
 # Begin Custom Build - Creating ..\lib\mswdll\wx\setup.h from $(InputPath)
 InputPath=..\include\wx\msw\setup.h
 
@@ -1484,7 +1509,9 @@ InputPath=..\include\wx\msw\setup.h
        copy "$(InputPath)" ..\lib\mswdll\wx\setup.h
 
 # End Custom Build
+
 !ELSEIF  "$(CFG)" == "wxWindows - Win32 Debug DLL"
+
 # Begin Custom Build - Creating ..\lib\mswdlld\wx\setup.h from $(InputPath)
 InputPath=..\include\wx\msw\setup.h
 
@@ -1492,7 +1519,9 @@ InputPath=..\include\wx\msw\setup.h
        copy "$(InputPath)" ..\lib\mswdlld\wx\setup.h
 
 # End Custom Build
+
 !ELSEIF  "$(CFG)" == "wxWindows - Win32 Release"
+
 # Begin Custom Build - Creating ..\lib\msw\wx\setup.h from $(InputPath)
 InputPath=..\include\wx\msw\setup.h
 
@@ -1500,7 +1529,9 @@ InputPath=..\include\wx\msw\setup.h
        copy "$(InputPath)" ..\lib\msw\wx\setup.h
 
 # End Custom Build
+
 !ELSEIF  "$(CFG)" == "wxWindows - Win32 Debug"
+
 # Begin Custom Build - Creating ..\lib\mswd\wx\setup.h from $(InputPath)
 InputPath=..\include\wx\msw\setup.h
 
@@ -1508,7 +1539,9 @@ InputPath=..\include\wx\msw\setup.h
        copy "$(InputPath)" ..\lib\mswd\wx\setup.h
 
 # End Custom Build
+
 !ENDIF 
+
 # End Source File
 # End Group
 # Begin Group "Common"
@@ -2446,7 +2479,6 @@ SOURCE=..\include\wx\zipstrm.h
 
 SOURCE=..\include\wx\zstream.h
 # End Source File
-
 # End Group
 # Begin Group "MSW"
 
@@ -2815,7 +2847,6 @@ SOURCE=..\include\wx\msw\window.h
 
 SOURCE=..\include\wx\msw\winundef.h
 # End Source File
-
 # End Group
 # Begin Group "Generic"
 
@@ -2976,7 +3007,6 @@ SOURCE=..\include\wx\generic\treectlg.h
 
 SOURCE=..\include\wx\generic\wizard.h
 # End Source File
-
 # End Group
 # Begin Group "HTML"
 
@@ -3033,7 +3063,6 @@ SOURCE=..\include\wx\html\m_templ.h
 
 SOURCE=..\include\wx\html\winpars.h
 # End Source File
-
 # End Group
 # End Group
 # End Target