bool MsgBubbleItem::OnMenu( ui::EventArgs* arg ) { std::wstring name = arg->pSender->GetName(); if(name == L"copy") OnMenuCopy(); else if(name == L"delete") OnMenuDelete(); else if (name == L"transform") OnMenuTransform(); return false; }
void CRemoteTreeView::OnChar(wxKeyEvent& event) { m_contextMenuItem = GetSelection(); wxCommandEvent cmdEvt; if (event.GetKeyCode() == WXK_F2) OnMenuRename(cmdEvt); else if (event.GetKeyCode() == WXK_DELETE || event.GetKeyCode() == WXK_NUMPAD_DELETE) OnMenuDelete(cmdEvt); else event.Skip(); }
bool MsgBubbleItem::OnMenu( ui::EventArgs* arg ) { std::wstring name = arg->pSender->GetName(); if(name == L"copy") OnMenuCopy(); else if(name == L"delete") OnMenuDelete(); else if (name == L"transform") OnMenuTransform(); else if (name == L"retweet") m_pWindow->SendNotify(this, ui::kEventNotify, BET_RETWEET, 0); else if (name == L"recall") m_pWindow->SendNotify(this, ui::kEventNotify, BET_RECALL, 0); return false; }
void CLocalListView::OnKeyDown(wxKeyEvent& event) { #ifdef __WXMAC__ #define CursorModifierKey wxMOD_CMD #else #define CursorModifierKey wxMOD_ALT #endif const int code = event.GetKeyCode(); if (code == WXK_DELETE || code == WXK_NUMPAD_DELETE) { if (GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED) == -1) { wxBell(); return; } wxCommandEvent tmp; OnMenuDelete(tmp); } else if (code == WXK_F2) { wxCommandEvent tmp; OnMenuRename(tmp); } else if (code == WXK_RIGHT && event.GetModifiers() == CursorModifierKey) { wxListEvent evt; evt.m_itemIndex = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_FOCUSED); OnItemActivated(evt); } else if (code == WXK_DOWN && event.GetModifiers() == CursorModifierKey) { wxCommandEvent cmdEvent; OnMenuUpload(cmdEvent); } else event.Skip(); }
void CLocalListView::OnChar(wxKeyEvent& event) { int code = event.GetKeyCode(); if (code == WXK_DELETE) { if (GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED) == -1) { wxBell(); return; } wxCommandEvent tmp; OnMenuDelete(tmp); } else if (code == WXK_F2) { wxCommandEvent tmp; OnMenuRename(tmp); } else if (code == WXK_BACK) { if (!m_hasParent) { wxBell(); return; } wxString error; if (!m_pState->SetLocalDir(_T(".."), &error)) { if (error != _T("")) wxMessageBox(error, _("Failed to change directory"), wxICON_INFORMATION); else wxBell(); } } else if (code > 32 && code < 300 && !event.HasModifiers()) { // Keyboard navigation within items wxDateTime now = wxDateTime::UNow(); if (m_lastKeyPress.IsValid()) { wxTimeSpan span = now - m_lastKeyPress; if (span.GetSeconds() >= 1) m_prefix = _T(""); } m_lastKeyPress = now; wxChar tmp[2]; #if wxUSE_UNICODE tmp[0] = event.GetUnicodeKey(); #else tmp[0] = code; #endif tmp[1] = 0; wxString newPrefix = m_prefix + tmp; bool beep = false; int item = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); if (item != -1) { wxString text = GetData(item)->name; if (text.Length() >= m_prefix.Length() && !m_prefix.CmpNoCase(text.Left(m_prefix.Length()))) beep = true; } else if (m_prefix == _T("")) beep = true; int start = item; if (start < 0) start = 0; int newPos = FindItemWithPrefix(newPrefix, start); if (newPos == -1 && m_prefix == tmp && item != -1 && beep) { // Search the next item that starts with the same letter newPrefix = m_prefix; newPos = FindItemWithPrefix(newPrefix, item + 1); } m_prefix = newPrefix; if (newPos == -1) { if (beep) wxBell(); return; } item = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); while (item != -1) { SetItemState(item, 0, wxLIST_STATE_SELECTED | wxLIST_STATE_FOCUSED); item = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); } SetItemState(newPos, wxLIST_STATE_SELECTED | wxLIST_STATE_FOCUSED, wxLIST_STATE_SELECTED | wxLIST_STATE_FOCUSED); EnsureVisible(newPos); } else event.Skip(); }