void CMenuElementUI::DoEvent(TEventUI& event) { if( event.Type == UIEVENT_MOUSEENTER ) { CListContainerElementUI::DoEvent(event); if( m_pWindow ) return; bool hasSubMenu = false; for( int i = 0; i < GetCount(); ++i ) { if( GetItemAt(i)->GetInterface(kMenuElementUIInterfaceName) != NULL ) { (static_cast<CMenuElementUI*>(GetItemAt(i)->GetInterface(kMenuElementUIInterfaceName)))->SetVisible(true); (static_cast<CMenuElementUI*>(GetItemAt(i)->GetInterface(kMenuElementUIInterfaceName)))->SetInternVisible(true); hasSubMenu = true; } } if( hasSubMenu ) { m_pOwner->SelectItem(GetIndex(), true); CreateMenuWnd(); } else { Activate(); } return; } if( event.Type == UIEVENT_BUTTONDOWN ) { if( IsEnabled() ){ CListContainerElementUI::DoEvent(event); if( m_pWindow ) return; bool hasSubMenu = false; for( int i = 0; i < GetCount(); ++i ) { if( GetItemAt(i)->GetInterface(kMenuElementUIInterfaceName) != NULL ) { (static_cast<CMenuElementUI*>(GetItemAt(i)->GetInterface(kMenuElementUIInterfaceName)))->SetVisible(true); (static_cast<CMenuElementUI*>(GetItemAt(i)->GetInterface(kMenuElementUIInterfaceName)))->SetInternVisible(true); hasSubMenu = true; } } if( hasSubMenu ) { CreateMenuWnd(); } else { Activate(); } } return; } CListContainerElementUI::DoEvent(event); }
bool CMenuElementUI::Activate() { if (CListContainerElementUI::Activate() && m_bSelected) { if( m_pWindow ) return true; bool hasSubMenu = false; for (int i = 0; i < GetCount(); ++i) { if (GetItemAt(i)->GetInterface(kMenuElementUIInterfaceName) != NULL) { (static_cast<CMenuElementUI*>(GetItemAt(i)->GetInterface(kMenuElementUIInterfaceName)))->SetVisible(true); (static_cast<CMenuElementUI*>(GetItemAt(i)->GetInterface(kMenuElementUIInterfaceName)))->SetInternVisible(true); hasSubMenu = true; } } if (hasSubMenu) { CreateMenuWnd(); } else { ContextMenuParam param; param.hWnd = m_pManager->GetPaintWindow(); param.wParam = 1; param.lParam = (LPARAM)GetName().GetData(); s_context_menu_observer.RBroadcast(param); } return true; } return false; }
void CMenuElementUI::DoEvent(TEventUI& event) { if( event.Type == UIEVENT_MOUSEENTER ) { CListContainerElementUI::DoEvent(event); if( m_pWindow ) return; bool hasSubMenu = false; for( int i = 0; i < GetCount(); ++i ) { if( GetItemAt(i)->GetInterface(kMenuElementUIInterfaceName) != NULL ) { (static_cast<CMenuElementUI*>(GetItemAt(i)->GetInterface(kMenuElementUIInterfaceName)))->SetVisible(true); (static_cast<CMenuElementUI*>(GetItemAt(i)->GetInterface(kMenuElementUIInterfaceName)))->SetInternVisible(true); hasSubMenu = true; } } if( hasSubMenu ) { m_pOwner->SelectItem(GetIndex(), true); CreateMenuWnd(); } else { ContextMenuParam param; param.hWnd = m_pManager->GetPaintWindow(); param.wParam = 2; param.lParam = NULL; s_context_menu_observer.RBroadcast(param); m_pOwner->SelectItem(GetIndex(), true); } return; } if( event.Type == UIEVENT_BUTTONDOWN ) { if( IsEnabled() ){ CListContainerElementUI::DoEvent(event); if( m_pWindow ) return; bool hasSubMenu = false; for( int i = 0; i < GetCount(); ++i ) { if( GetItemAt(i)->GetInterface(kMenuElementUIInterfaceName) != NULL ) { (static_cast<CMenuElementUI*>(GetItemAt(i)->GetInterface(kMenuElementUIInterfaceName)))->SetVisible(true); (static_cast<CMenuElementUI*>(GetItemAt(i)->GetInterface(kMenuElementUIInterfaceName)))->SetInternVisible(true); hasSubMenu = true; } } if( hasSubMenu ) { CreateMenuWnd(); } else { ContextMenuParam param; param.hWnd = m_pManager->GetPaintWindow(); param.wParam = 1; param.lParam = (LPARAM)GetName().GetData(); s_context_menu_observer.RBroadcast(param); } } return; } CListContainerElementUI::DoEvent(event); }
void CMenuElementUI::DoEvent(TEventUI& event) { if( event.Type == UIEVENT_MOUSEENTER ) { CListContainerElementUI::DoEvent(event); if( m_pWindow ) return; bool hasSubMenu = false; for( int i = 0; i < GetCount(); ++i ) { if( GetItemAt(i)->GetInterface(_T("MenuElement")) != NULL ) { (static_cast<CMenuElementUI*>(GetItemAt(i)->GetInterface(_T("MenuElement"))))->SetVisible(true); (static_cast<CMenuElementUI*>(GetItemAt(i)->GetInterface(_T("MenuElement"))))->SetInternVisible(true); hasSubMenu = true; } } if( hasSubMenu ) { m_pOwner->SelectItem(GetIndex(), true); CreateMenuWnd(); } else { ContextMenuParam param; param.hWnd = m_pManager->GetPaintWindow(); param.wParam = 2; CMenuWnd::GetGlobalContextMenuObserver().RBroadcast(param); m_pOwner->SelectItem(GetIndex(), true); } return; } if( event.Type == UIEVENT_BUTTONUP ) { if( IsEnabled() ){ CListContainerElementUI::DoEvent(event); if( m_pWindow ) return; bool hasSubMenu = false; for( int i = 0; i < GetCount(); ++i ) { if( GetItemAt(i)->GetInterface(_T("MenuElement")) != NULL ) { (static_cast<CMenuElementUI*>(GetItemAt(i)->GetInterface(_T("MenuElement"))))->SetVisible(true); (static_cast<CMenuElementUI*>(GetItemAt(i)->GetInterface(_T("MenuElement"))))->SetInternVisible(true); hasSubMenu = true; } } if( hasSubMenu ) { CreateMenuWnd(); } else { SetChecked(!GetChecked()); MenuCmd* pMenuCmd = new MenuCmd(); lstrcpy(pMenuCmd->szName, GetName().GetData()); lstrcpy(pMenuCmd->szUserData, GetUserData().GetData()); lstrcpy(pMenuCmd->szText, GetText().GetData()); pMenuCmd->bChecked = GetChecked(); ContextMenuParam param; param.hWnd = m_pManager->GetPaintWindow(); param.wParam = 1; CMenuWnd::GetGlobalContextMenuObserver().RBroadcast(param); if (CMenuWnd::GetGlobalContextMenuObserver().GetManager() != NULL) { if (!PostMessage(CMenuWnd::GetGlobalContextMenuObserver().GetManager()->GetPaintWindow(), WM_MENUCLICK, (WPARAM)pMenuCmd, NULL)) { delete pMenuCmd; pMenuCmd = NULL; } } } } return; } if ( event.Type == UIEVENT_KEYDOWN && event.chKey == VK_RIGHT ) { if( m_pWindow ) return; bool hasSubMenu = false; for( int i = 0; i < GetCount(); ++i ) { if( GetItemAt(i)->GetInterface(_T("MenuElement")) != NULL ) { (static_cast<CMenuElementUI*>(GetItemAt(i)->GetInterface(_T("MenuElement"))))->SetVisible(true); (static_cast<CMenuElementUI*>(GetItemAt(i)->GetInterface(_T("MenuElement"))))->SetInternVisible(true); hasSubMenu = true; } } if( hasSubMenu ) { m_pOwner->SelectItem(GetIndex(), true); CreateMenuWnd(); } else { ContextMenuParam param; param.hWnd = m_pManager->GetPaintWindow(); param.wParam = 2; CMenuWnd::GetGlobalContextMenuObserver().RBroadcast(param); m_pOwner->SelectItem(GetIndex(), true); } return; } CListContainerElementUI::DoEvent(event); }