}
#endif // Win32
+ // VZ: this code breaks radiobox redrawing under Windows XP, don't use
+ // it. If you need to get messages from the static controls,
+ // create them as a child of another (non static) window
+#if 0
// This is required for the radiobox to be sensitive to mouse input,
// e.g. for Dialog Editor.
case WM_NCHITTEST:
return (long)HTCLIENT;
}
break;
+#endif // 0
}
return wxControl::MSWWindowProc(nMsg, wParam, lParam);
wxColour colBack = GetBackgroundColour();
if (!IsEnabled())
- colBack = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE);
+ colBack = wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE);
::SetBkColor(hdc, wxColourToRGB(colBack));
::SetTextColor(hdc, wxColourToRGB(GetForegroundColour()));
bool processed = TRUE;
- bool horz = (radiobox->GetWindowStyle() & wxRA_SPECIFY_COLS) != 0;
- int num = radiobox->Number(),
- rows = radiobox->GetNumVer(),
- cols = radiobox->GetNumHor();
-
- int selOld = radiobox->GetSelection();
- int selNew = selOld;
-
+ wxDirection dir;
switch ( wParam )
{
case VK_UP:
radiobox->GetWindowStyle()
);
- int dim = horz ? cols : rows;
- if ( selNew % dim == 0 )
- {
- selNew -= dim - 1;
- }
- else
- {
- selNew++;
- }
- }
-
if ( selNew != selOld )
{
radiobox->SetSelection(selNew);
#ifdef __WIN32__
case WM_HELP:
- {
- wxRadioBox *radiobox = (wxRadioBox *)
- ::GetWindowLong(hwnd, GWL_USERDATA);
+ {
+ wxRadioBox *radiobox = (wxRadioBox *)
+ ::GetWindowLong(hwnd, GWL_USERDATA);
- wxCHECK_MSG( radiobox, 0, wxT("radio button without radio box?") );
+ wxCHECK_MSG( radiobox, 0, wxT("radio button without radio box?") );
- bool processed = TRUE;
+ bool processed = TRUE;
- HELPINFO* info = (HELPINFO*) lParam;
- // Don't yet process menu help events, just windows
- if (info->iContextType == HELPINFO_WINDOW)
- {
- wxWindow* subjectOfHelp = radiobox;
- bool eventProcessed = FALSE;
- while (subjectOfHelp && !eventProcessed)
+ HELPINFO* info = (HELPINFO*) lParam;
+ // Don't yet process menu help events, just windows
+ if (info->iContextType == HELPINFO_WINDOW)
{
- wxHelpEvent helpEvent(wxEVT_HELP, subjectOfHelp->GetId(), wxPoint(info->MousePos.x, info->MousePos.y) ) ; // info->iCtrlId);
- helpEvent.SetEventObject(radiobox);
- eventProcessed = radiobox->GetEventHandler()->ProcessEvent(helpEvent);
+ wxWindow* subjectOfHelp = radiobox;
+ bool eventProcessed = FALSE;
+ while (subjectOfHelp && !eventProcessed)
+ {
+ wxHelpEvent helpEvent(wxEVT_HELP, subjectOfHelp->GetId(), wxPoint(info->MousePos.x, info->MousePos.y) ) ; // info->iCtrlId);
+ helpEvent.SetEventObject(radiobox);
+ eventProcessed = radiobox->GetEventHandler()->ProcessEvent(helpEvent);
- // Go up the window hierarchy until the event is handled (or not)
- subjectOfHelp = subjectOfHelp->GetParent();
+ // Go up the window hierarchy until the event is handled (or not)
+ subjectOfHelp = subjectOfHelp->GetParent();
+ }
+ processed = eventProcessed;
}
- processed = eventProcessed;
- }
- else if (info->iContextType == HELPINFO_MENUITEM)
- {
- wxHelpEvent helpEvent(wxEVT_HELP, info->iCtrlId) ;
- helpEvent.SetEventObject(radiobox);
- processed = radiobox->GetEventHandler()->ProcessEvent(helpEvent);
- }
- else processed = FALSE;
+ else if (info->iContextType == HELPINFO_MENUITEM)
+ {
+ wxHelpEvent helpEvent(wxEVT_HELP, info->iCtrlId) ;
+ helpEvent.SetEventObject(radiobox);
+ processed = radiobox->GetEventHandler()->ProcessEvent(helpEvent);
+ }
+ else processed = FALSE;
- if (processed)
- return 0;
+ if (processed)
+ return 0;
- break;
- }
-#endif
+ break;
+ }
+#endif // __WIN32__
}
return ::CallWindowProc(CASTWNDPROC s_wndprocRadioBtn, hwnd, message, wParam, lParam);