void SystemTray::OnSysTrayMenuItem(wxCommandEvent& evt) { EventHandlerDisabler ehd(this); const int id = evt.GetId(); if (IsRUECommand(id)) { RUEOperation opn = GetRUEOperation(id); if (opn == RUE_DELETERUEENTRY) { m_frame->DeleteRUEntry(GetRUEIndex(id)); } else { wxCommandEvent cmd(evt.GetEventType(), GetFrameCommandId(opn)); cmd.SetExtraLong(id); #if wxCHECK_VERSION(2,9,0) m_frame->GetEventHandler()->ProcessEvent(cmd); #else m_frame->ProcessEvent(cmd); #endif } } else { switch(id) { case ID_SYSTRAY_RESTORE: m_frame->UnlockSafe(true); // true => restore UI break; case ID_SYSTRAY_LOCK: m_frame->HideUI(true); break; case ID_SYSTRAY_UNLOCK: m_frame->UnlockSafe(false); // false => don't restore UI break; case ID_SYSTRAY_CLEAR_RUE: m_frame->ClearRUEList(); break; case wxID_EXIT: case ID_CLEARCLIPBOARD: case wxID_ABOUT: case wxID_CLOSE: m_frame->GetEventHandler()->ProcessEvent(evt); break; case wxID_ICONIZE_FRAME: m_frame->Iconize(); break; default: break; } } }
bool Compiler::visit(AST::TryStatement *node) { int start = nextInstructionOffset(); if (node->statement) node->statement->accept(this); int end = nextInstructionOffset(); if (node->catchExpression) { iBranch(0); // skip the catch if no exception ExceptionHandlerDescriptor ehd(start, end, nextInstructionOffset()); m_exceptionHandlers.append(ehd); iBeginCatch(node->catchExpression->name); node->catchExpression->statement->accept(this); iEndCatch(); patchInstruction(end, nextInstructionOffset() - end); } if (node->finallyExpression) { if (!node->catchExpression) { ExceptionHandlerDescriptor ehd(start, end, nextInstructionOffset()); m_exceptionHandlers.prepend(ehd); } node->finallyExpression->statement->accept(this); } return false; }
void SystemTray::OnTaskBarLeftDoubleClick(wxTaskBarIconEvent& /*evt*/) { EventHandlerDisabler ehd(this); m_frame->UnlockSafe(true); //true => restore UI }