MCPcopy Create free account
hub / github.com/SOUI2/soui / _HandleEvent

Method _HandleEvent

SOUI/src/helper/SMenuEx.cpp:893–940  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

891 }
892
893 BOOL SMenuEx::_HandleEvent(EventArgs *pEvt)
894 {
895 if (pEvt->sender->IsClass(SMenuExItem::GetClassName()))
896 {
897 SMenuExItem *pMenuItem = sobj_cast<SMenuExItem>(pEvt->sender);
898 if (pEvt->GetID() == EventSwndMouseHover::EventID)
899 {
900 if (pMenuItem->GetSubMenu() != NULL)
901 {
902 CSimpleWnd::SetTimer(TIMERID_POPSUBMENU, TIME_PUPSUBMENU);
903 m_pHoverItem = pMenuItem;
904 }
905 HideSubMenu();
906 return FALSE;
907 }
908 else if (pEvt->GetID() == EventSwndMouseLeave::EventID)
909 {
910 if (pMenuItem->GetSubMenu() != NULL)
911 {
912 CSimpleWnd::KillTimer(TIMERID_POPSUBMENU);
913 m_pHoverItem = NULL;
914 }
915 return FALSE;
916 }
917
918 if (pEvt->GetID() != EventCmd::EventID) return FALSE;
919 SASSERT(pMenuItem);
920 if (pMenuItem->GetSubMenu())
921 {
922 PopupSubMenu(pMenuItem, FALSE);
923 return FALSE;
924 }
925 else if (pMenuItem->GetID() == 0)
926 {
927 return FALSE;
928 }
929 s_MenuData->ExitMenu(pMenuItem->GetID());
930 return TRUE;
931 }
932 else if (s_MenuData && ::IsWindow(s_MenuData->GetOwner()))
933 {
934 return (BOOL)::SendMessage(s_MenuData->GetOwner(), UM_MENUEVENT, 0, (LPARAM)pEvt);
935 }
936 else
937 {
938 return FALSE;
939 }
940 }
941
942 void SMenuEx::OnTimer(UINT_PTR timeID)
943 {

Callers 1

OnEventMethod · 0.80

Calls 10

GetClassNameFunction · 0.85
SetTimerFunction · 0.85
IsWindowFunction · 0.85
SendMessageFunction · 0.85
IsClassMethod · 0.80
ExitMenuMethod · 0.80
KillTimerFunction · 0.50
GetIDMethod · 0.45
GetSubMenuMethod · 0.45
GetOwnerMethod · 0.45

Tested by

no test coverage detected