]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/button.cpp
Added dcbase.cpp
[wxWidgets.git] / src / msw / button.cpp
index 849eef8dbd92429553446406c131b46d65b32dce..80e8318503d2d20d5de7f5a63a8b85a6b4238495 100644 (file)
@@ -22,6 +22,7 @@
 
 #ifndef WX_PRECOMP
 #include "wx/button.h"
+#include "wx/brush.h"
 #endif
 
 #include "wx/msw/private.h"
@@ -56,8 +57,8 @@ bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& label,
   SetValidator(validator);
 
   parent->AddChild((wxButton *)this);
-  m_backgroundColour = parent->GetDefaultBackgroundColour() ;
-  m_foregroundColour = parent->GetDefaultForegroundColour() ;
+  m_backgroundColour = parent->GetBackgroundColour() ;
+  m_foregroundColour = parent->GetForegroundColour() ;
 
   m_windowStyle = (long&)style;
 
@@ -71,31 +72,30 @@ bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& label,
   else
     m_windowId = id;
 
-  DWORD exStyle = MakeExtendedStyle(m_windowStyle);
-  HWND wx_button =
-    CreateWindowEx(exStyle, "BUTTON", label, BS_PUSHBUTTON | WS_TABSTOP | WS_CHILD,
-                    0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId,
-                    wxGetInstance(), NULL);
-
-#if CTL3D
-//  if (!(GetParent()->GetWindowStyleFlag() & wxUSER_COLOURS))
-//    Ctl3dSubclassCtl(wx_button);
-#endif
-
-  m_hWnd = (WXHWND)wx_button;
+  m_hWnd = (WXHWND)CreateWindowEx
+                   (
+                    MakeExtendedStyle(m_windowStyle),
+                    "BUTTON",
+                    label,
+                    WS_VISIBLE | WS_TABSTOP | WS_CHILD,
+                    0, 0, 0, 0, 
+                    GetWinHwnd(parent),
+                    (HMENU)m_windowId,
+                    wxGetInstance(),
+                    NULL
+                   );
 
   // Subclass again for purposes of dialog editing mode
-  SubclassWin((WXHWND)wx_button);
+  SubclassWin(m_hWnd);
 
-  SetFont(parent->GetFont());
+  SetFont(parent->GetFont());
 
   SetSize(x, y, width, height);
-  ShowWindow(wx_button, SW_SHOW);
 
   return TRUE;
 }
 
-void wxButton::SetSize(int x, int y, int width, int height, int sizeFlags)
+void wxButton::DoSetSize(int x, int y, int width, int height, int sizeFlags)
 {
   int currentX, currentY;
   GetPosition(&currentX, &currentY);
@@ -117,7 +117,8 @@ void wxButton::SetSize(int x, int y, int width, int height, int sizeFlags)
   int cyf;
   char buf[300];
   GetWindowText((HWND) GetHWND(), buf, 300);
-  GetTextExtent(buf, &current_width, &cyf,NULL,NULL,GetFont());
+  GetTextExtent(buf, &current_width, &cyf,NULL,NULL,
+    & this->GetFont());
 
   // If we're prepared to use the existing width, then...
   if (width == -1 && ((sizeFlags & wxSIZE_AUTO_WIDTH) != wxSIZE_AUTO_WIDTH))
@@ -126,7 +127,7 @@ void wxButton::SetSize(int x, int y, int width, int height, int sizeFlags)
   {
     int cx;
     int cy;
-    wxGetCharSize(GetHWND(), &cx, &cy,GetFont());
+    wxGetCharSize(GetHWND(), &cx, &cy, & this->GetFont());
     actualWidth = (int)(current_width + 3*cx) ;
   }