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:
@@ -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);
|
return ::CallWindowProc(CASTWNDPROC s_wndprocRadioBtn, hwnd, message, wParam, lParam);
|
||||||
|
Reference in New Issue
Block a user