Enabled context-sensitive help for wxRadioBox

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8416 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart 2000-09-25 16:01:44 +00:00
parent 480df2cf57
commit fac9339629

View File

@ -1025,6 +1025,47 @@ LRESULT APIENTRY _EXPORT wxRadioBtnWndProc(HWND hwnd,
}
}
}
#ifdef __WIN32__
case WM_HELP:
{
wxRadioBox *radiobox = (wxRadioBox *)
::GetWindowLong(hwnd, GWL_USERDATA);
wxCHECK_MSG( radiobox, 0, wxT("radio button without radio box?") );
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)
{
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();
}
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;
if (processed)
return 0;
break;
}
#endif
}
return ::CallWindowProc(CASTWNDPROC s_wndprocRadioBtn, hwnd, message, wParam, lParam);