X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1dab049c9e46d2c484c384679a656b46d0e4f513..a9fc5eec8b1facb001552e61e28c88a22034f199:/src/msw/radiobox.cpp diff --git a/src/msw/radiobox.cpp b/src/msw/radiobox.cpp index d0f6c2b18f..c42ccbd12c 100644 --- a/src/msw/radiobox.cpp +++ b/src/msw/radiobox.cpp @@ -67,14 +67,14 @@ wxBEGIN_FLAGS( wxRadioBoxStyle ) wxFLAGS_MEMBER(wxDOUBLE_BORDER) wxFLAGS_MEMBER(wxRAISED_BORDER) wxFLAGS_MEMBER(wxSTATIC_BORDER) - wxFLAGS_MEMBER(wxNO_BORDER) + wxFLAGS_MEMBER(wxBORDER) // standard window styles wxFLAGS_MEMBER(wxTAB_TRAVERSAL) wxFLAGS_MEMBER(wxCLIP_CHILDREN) wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW) wxFLAGS_MEMBER(wxWANTS_CHARS) - wxFLAGS_MEMBER(wxNO_FULL_REPAINT_ON_RESIZE) + wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE) wxFLAGS_MEMBER(wxALWAYS_SHOW_SB ) wxFLAGS_MEMBER(wxVSCROLL) wxFLAGS_MEMBER(wxHSCROLL) @@ -346,12 +346,30 @@ bool wxRadioBox::Create(wxWindow *parent, (HMENU)NewControlId(), wxGetInstance(), NULL); SetSelection(0); - SetSize(pos.x, pos.y, size.x, size.y); + // Now that we have items determine what is the best size and set it. + SetBestSize(size); + return TRUE; } +bool wxRadioBox::Create(wxWindow *parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + const wxArrayString& choices, + int majorDim, + long style, + const wxValidator& val, + const wxString& name) +{ + wxCArrayString chs(choices); + return Create(parent, id, title, pos, size, chs.GetCount(), + chs.GetStrings(), majorDim, style, val, name); +} + wxRadioBox::~wxRadioBox() { m_isBeingDeleted = TRUE; @@ -766,10 +784,10 @@ void wxRadioBox::SubclassRadioButton(WXHWND hWndBtn) HWND hwndBtn = (HWND)hWndBtn; if ( !s_wndprocRadioBtn ) - s_wndprocRadioBtn = (WXFARPROC)::GetWindowLong(hwndBtn, GWL_WNDPROC); + s_wndprocRadioBtn = (WXFARPROC)wxGetWindowProc(hwndBtn); - ::SetWindowLong(hwndBtn, GWL_WNDPROC, (long)wxRadioBtnWndProc); - ::SetWindowLong(hwndBtn, GWL_USERDATA, (long)this); + wxSetWindowProc(hwndBtn, wxRadioBtnWndProc); + wxSetWindowUserData(hwndBtn, this); } void wxRadioBox::SendNotificationEvent() @@ -807,7 +825,7 @@ bool wxRadioBox::SetFont(const wxFont& font) // our window proc // ---------------------------------------------------------------------------- -long wxRadioBox::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) +WXLRESULT wxRadioBox::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) { switch ( nMsg ) { @@ -823,7 +841,7 @@ long wxRadioBox::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) wxBrush *brush = wxTheBrushList->FindOrCreateBrush(colBack, wxSOLID); - return (WXHBRUSH)brush->GetResourceHandle(); + return (WXLRESULT)brush->GetResourceHandle(); } #endif // Win32 @@ -917,8 +935,8 @@ LRESULT APIENTRY _EXPORT wxRadioBtnWndProc(HWND hwnd, NMHDR* hdr = (NMHDR *)lParam; if ( hdr->code == TTN_NEEDTEXT ) { - wxRadioBox *radiobox = (wxRadioBox *) - ::GetWindowLong(hwnd, GWL_USERDATA); + wxRadioBox * + radiobox = (wxRadioBox *)wxGetWindowUserData(hwnd); wxCHECK_MSG( radiobox, 0, wxT("radio button without radio box?") ); @@ -939,8 +957,7 @@ LRESULT APIENTRY _EXPORT wxRadioBtnWndProc(HWND hwnd, case WM_KEYDOWN: { - wxRadioBox *radiobox = (wxRadioBox *) - ::GetWindowLong(hwnd, GWL_USERDATA); + wxRadioBox *radiobox = (wxRadioBox *)wxGetWindowUserData(hwnd); wxCHECK_MSG( radiobox, 0, wxT("radio button without radio box?") ); @@ -999,8 +1016,7 @@ LRESULT APIENTRY _EXPORT wxRadioBtnWndProc(HWND hwnd, case WM_SETFOCUS: case WM_KILLFOCUS: { - wxRadioBox *radiobox = (wxRadioBox *) - ::GetWindowLong(hwnd, GWL_USERDATA); + wxRadioBox *radiobox = (wxRadioBox *)wxGetWindowUserData(hwnd); wxCHECK_MSG( radiobox, 0, wxT("radio button without radio box?") ); @@ -1018,8 +1034,7 @@ LRESULT APIENTRY _EXPORT wxRadioBtnWndProc(HWND hwnd, #ifdef __WIN32__ case WM_HELP: { - wxRadioBox *radiobox = (wxRadioBox *) - ::GetWindowLong(hwnd, GWL_USERDATA); + wxRadioBox *radiobox = (wxRadioBox *)wxGetWindowUserData(hwnd); wxCHECK_MSG( radiobox, 0, wxT("radio button without radio box?") );