X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0b4f47a319cfaa434e00025aa779e407fbacee23..180b5b4827d08f1ac13bbb5eca03f775ab35a0b1:/src/msw/tglbtn.cpp diff --git a/src/msw/tglbtn.cpp b/src/msw/tglbtn.cpp index 9b6d07128d..7a0e49c862 100644 --- a/src/msw/tglbtn.cpp +++ b/src/msw/tglbtn.cpp @@ -2,17 +2,17 @@ // Name: src/msw/tglbtn.cpp // Purpose: Definition of the wxToggleButton class, which implements a // toggle button under wxMSW. -// Author: John Norris, minor changes by Axel Schlueter -// and William Gallafent. +// Author: John Norris, minor changes by Axel Schlueter +// and William Gallafent. // Modified by: // Created: 08.02.01 // RCS-ID: $Id$ // Copyright: (c) 2000 Johnny C. Norris II -// License: Rocketeer license +// License: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ -// declatations +// declarations // ============================================================================ // ---------------------------------------------------------------------------- @@ -25,10 +25,10 @@ #pragma hdrstop #endif -#include "wx/tglbtn.h" - #if wxUSE_TOGGLEBTN +#include "wx/tglbtn.h" + #ifndef WX_PRECOMP #include "wx/button.h" #include "wx/brush.h" @@ -63,7 +63,7 @@ bool wxToggleButton::MSWCommand(WXUINT WXUNUSED(param), WXWORD WXUNUSED(id)) event.SetInt(GetValue()); event.SetEventObject(this); ProcessCommand(event); - return TRUE; + return true; } // Single check box item @@ -75,17 +75,12 @@ bool wxToggleButton::Create(wxWindow *parent, wxWindowID id, const wxString& name) { if ( !CreateControl(parent, id, pos, size, style, validator, name) ) - return FALSE; - + return false; + if ( !MSWCreateControl(wxT("BUTTON"), label, pos, size) ) - return FALSE; - - return TRUE; -} + return false; -wxBorder wxToggleButton::GetDefaultBorder() const -{ - return wxBORDER_NONE; + return true; } WXDWORD wxToggleButton::MSWGetStyle(long style, WXDWORD *exstyle) const @@ -110,19 +105,14 @@ WXDWORD wxToggleButton::MSWGetStyle(long style, WXDWORD *exstyle) const return msStyle; } -void wxToggleButton::SetLabel(const wxString& label) -{ - SetWindowText(GetHwnd(), label); -} - wxSize wxToggleButton::DoGetBestSize() const { wxString label = wxGetWindowText(GetHWND()); int wBtn; - GetTextExtent(label, &wBtn, NULL); + GetTextExtent(GetLabelText(label), &wBtn, NULL); int wChar, hChar; - wxGetCharSize(GetHWND(), &wChar, &hChar, &GetFont()); + wxGetCharSize(GetHWND(), &wChar, &hChar, GetFont()); // add a margin - the button is wider than just its label wBtn += 3*wChar; @@ -131,21 +121,26 @@ wxSize wxToggleButton::DoGetBestSize() const int hBtn = BUTTON_HEIGHT_FROM_CHAR_HEIGHT(hChar); #if wxUSE_BUTTON - wxSize sz = wxButton::GetDefaultSize(); - if (wBtn > sz.x) - sz.x = wBtn; - if (hBtn > sz.y) - sz.y = hBtn; -#else + // make all buttons of at least standard size unless wxBU_EXACTFIT is given + if ( !HasFlag(wxBU_EXACTFIT) ) + { + const wxSize szMin = wxButton::GetDefaultSize(); + if ( wBtn < szMin.x ) + wBtn = szMin.x; + if ( hBtn < szMin.y ) + hBtn = szMin.y; + } +#endif // wxUSE_BUTTON + wxSize sz(wBtn, hBtn); -#endif + CacheBestSize(sz); return sz; } void wxToggleButton::SetValue(bool val) { - SendMessage(GetHwnd(), BM_SETCHECK, val, 0); + ::SendMessage(GetHwnd(), BM_SETCHECK, val, 0); } #ifndef BST_CHECKED @@ -155,9 +150,9 @@ void wxToggleButton::SetValue(bool val) bool wxToggleButton::GetValue() const { #ifdef __WIN32__ - return (SendMessage(GetHwnd(), BM_GETCHECK, 0, 0) == BST_CHECKED); + return (::SendMessage(GetHwnd(), BM_GETCHECK, 0, 0) == BST_CHECKED); #else - return ((0x001 & SendMessage(GetHwnd(), BM_GETCHECK, 0, 0)) == 0x001); + return ((0x001 & ::SendMessage(GetHwnd(), BM_GETCHECK, 0, 0)) == 0x001); #endif } @@ -168,4 +163,3 @@ void wxToggleButton::Command(wxCommandEvent & event) } #endif // wxUSE_TOGGLEBTN -