X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5aab763c09c663ab5e5b92e533ca025e811f1bcf..22026088535d0c7dafaae15133a8d1078195a366:/src/msw/button.cpp diff --git a/src/msw/button.cpp b/src/msw/button.cpp index 81c588c5be..3f5cd007c8 100644 --- a/src/msw/button.cpp +++ b/src/msw/button.cpp @@ -5,8 +5,8 @@ // Modified by: // Created: 04/01/98 // RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license +// Copyright: (c) Julian Smart +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -17,7 +17,7 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "button.h" #endif @@ -46,7 +46,25 @@ // macros // ---------------------------------------------------------------------------- +#if wxUSE_EXTENDED_RTTI +IMPLEMENT_DYNAMIC_CLASS_XTI(wxButton, wxControl,"wx/button.h") + +WX_BEGIN_PROPERTIES_TABLE(wxButton) + WX_DELEGATE( OnClick , wxEVT_COMMAND_BUTTON_CLICKED , wxCommandEvent ) + + WX_PROPERTY( Font , wxFont , SetFont , GetWindowFont , ) + WX_PROPERTY( Label,wxString, SetLabel, GetLabel, wxT("") ) +WX_END_PROPERTIES_TABLE() + +WX_BEGIN_HANDLERS_TABLE(wxButton) +WX_END_HANDLERS_TABLE() + +WX_CONSTRUCTOR_6( wxButton , wxWindow* , Parent , wxWindowID , Id , wxString , Label , wxPoint , Position , wxSize , Size , long , WindowStyle ) + + +#else IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl) +#endif // this macro tries to adjust the default button height to a reasonable value // using the char height as the base @@ -415,8 +433,8 @@ static void DrawButtonText(HDC hdc, COLORREF colOld = SetTextColor(hdc, col); int modeOld = SetBkMode(hdc, TRANSPARENT); - DrawText(hdc, text, text.length(), pRect, - DT_CENTER | DT_VCENTER | DT_SINGLELINE); + // Note: we must have DT_SINGLELINE for DT_VCENTER to work. + ::DrawText(hdc, text, text.length(), pRect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); SetBkMode(hdc, modeOld); SetTextColor(hdc, colOld); @@ -424,11 +442,10 @@ static void DrawButtonText(HDC hdc, static void DrawRect(HDC hdc, const RECT& r) { - MoveToEx(hdc, r.left, r.top, NULL); - LineTo(hdc, r.right, r.top); - LineTo(hdc, r.right, r.bottom); - LineTo(hdc, r.left, r.bottom); - LineTo(hdc, r.left, r.top); + wxDrawLine(hdc, r.left, r.top, r.right, r.top); + wxDrawLine(hdc, r.right, r.top, r.right, r.bottom); + wxDrawLine(hdc, r.right, r.bottom, r.left, r.bottom); + wxDrawLine(hdc, r.left, r.bottom, r.left, r.top); } void wxButton::MakeOwnerDrawn() @@ -542,24 +559,20 @@ static void DrawButtonFrame(HDC hdc, const RECT& rectBtn, InflateRect(&r, -1, -1); } - MoveToEx(hdc, r.left, r.bottom, NULL); - LineTo(hdc, r.right, r.bottom); - LineTo(hdc, r.right, r.top - 1); + wxDrawLine(hdc, r.left, r.bottom, r.right, r.bottom); + wxDrawLine(hdc, r.right, r.bottom, r.right, r.top - 1); (void)SelectObject(hdc, hpenWhite); - MoveToEx(hdc, r.left, r.bottom - 1, NULL); - LineTo(hdc, r.left, r.top); - LineTo(hdc, r.right, r.top); + wxDrawLine(hdc, r.left, r.bottom - 1, r.left, r.top); + wxDrawLine(hdc, r.left, r.top, r.right, r.top); (void)SelectObject(hdc, hpenLightGr); - MoveToEx(hdc, r.left + 1, r.bottom - 2, NULL); - LineTo(hdc, r.left + 1, r.top + 1); - LineTo(hdc, r.right - 1, r.top + 1); + wxDrawLine(hdc, r.left + 1, r.bottom - 2, r.left + 1, r.top + 1); + wxDrawLine(hdc, r.left + 1, r.top + 1, r.right - 1, r.top + 1); (void)SelectObject(hdc, hpenGrey); - MoveToEx(hdc, r.left + 1, r.bottom - 1, NULL); - LineTo(hdc, r.right - 1, r.bottom - 1); - LineTo(hdc, r.right - 1, r.top); + wxDrawLine(hdc, r.left + 1, r.bottom - 1, r.right - 1, r.bottom - 1); + wxDrawLine(hdc, r.right - 1, r.bottom - 1, r.right - 1, r.top); } (void)SelectObject(hdc, hpenOld);