void PHPWorkspaceView::OnSetupRemoteUpload(wxAuiToolBarEvent& event) { if ( !event.IsDropDownClicked() ) { CallAfter( &PHPWorkspaceView::DoOpenSSHAccountManager ); } else { SSHWorkspaceSettings settings; settings.Load(); wxMenu menu; if ( !settings.IsRemoteUploadSet() ) { // We never setup remote upload for this workspace menu.AppendCheckItem(ID_TOGGLE_AUTOMATIC_UPLOAD, _("Enable automatic upload")); menu.Enable(ID_TOGGLE_AUTOMATIC_UPLOAD, false); menu.Check(ID_TOGGLE_AUTOMATIC_UPLOAD, false); } else { menu.AppendCheckItem(ID_TOGGLE_AUTOMATIC_UPLOAD, _("Enable automatic upload")); menu.Check(ID_TOGGLE_AUTOMATIC_UPLOAD, settings.IsRemoteUploadEnabled()); menu.Connect(ID_TOGGLE_AUTOMATIC_UPLOAD, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(PHPWorkspaceView::OnToggleAutoUpload), NULL, this); } wxAuiToolBar* auibar = dynamic_cast<wxAuiToolBar*>(event.GetEventObject()); if ( auibar ) { clAuiToolStickness ts(auibar, event.GetToolId()); wxRect rect = auibar->GetToolRect(event.GetId()); wxPoint pt = auibar->ClientToScreen(rect.GetBottomLeft()); pt = ScreenToClient(pt); PopupMenu(&menu, pt); } } }
void SFTPTreeView::OnOpenTerminal(wxAuiToolBarEvent& event) { // Open terminal to the selected account if(event.IsDropDownClicked()) { SFTPTreeViewBase::ShowAuiToolMenu(event); } else { SFTPSettings settings; settings.Load(); wxString accountName = m_choiceAccount->GetStringSelection(); if(accountName.IsEmpty()) { ::wxMessageBox(_("Please select an account to connect to"), "CodeLite", wxICON_ERROR | wxOK); return; } SSHAccountInfo account; if(!settings.GetAccount(accountName, account)) { ::wxMessageBox(wxString() << _("Could not find account: ") << accountName, "CodeLite", wxICON_ERROR | wxOK); return; } wxString connectString; connectString << account.GetUsername() << "@" << account.GetHost(); const wxString& sshClient = settings.GetSshClient(); FileUtils::OpenSSHTerminal(sshClient, connectString, account.GetPassword(), account.GetPort()); } }
void HtMainFrame::OnFileOpenDropDown (wxAuiToolBarEvent &event) { if (event.IsDropDownClicked()) { wxAuiToolBar *tb = static_cast<wxAuiToolBar *>(event.GetEventObject()); tb->SetToolSticky(event.GetId(), true); wxMenu menuPopup; history.AddFilesToMenu(&menuPopup); // event handler to deal with the menu items const int start = history.GetBaseId(); const int end = history.GetBaseId() + history.GetMaxFiles(); Connect(start, end, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(HtMainFrame::OnRecentFilesSelected)); // line up our menu with the button wxRect rect = tb->GetToolRect(event.GetId()); wxPoint pt = tb->ClientToScreen(rect.GetBottomLeft()); pt = ScreenToClient(pt); PopupMenu(&menuPopup, pt); // make sure the button is "un-stuck" tb->SetToolSticky(event.GetId(), false); } else { wxCommandEvent dummy; OnFileOpen(dummy); } }
bool PrepDropDown(wxAuiToolBar* tb, wxAuiToolBarEvent& event) { if (!event.IsDropDownClicked()) { event.Skip(); return false; } tb->SetToolSticky(event.GetId(), true); return true; }
void SFTPTreeView::OnAddBookmark(wxAuiToolBarEvent& event) { if ( event.IsDropDownClicked() ) { // Show the menu const wxArrayString &bookmarks = m_account.GetBookmarks(); wxMenu menu; for(size_t i=0; i<bookmarks.GetCount(); ++i) { menu.Append(ID_SFTP_BOOKMARK_FIRST+i, bookmarks.Item(i)); } menu.AppendSeparator(); menu.Append(ID_SFTP_BOOKMARK_SETTINGS, _("Manage bookmarks...")); wxPoint pt = event.GetItemRect().GetBottomLeft(); pt.y++; int sel = m_auibar->GetPopupMenuSelectionFromUser( menu, pt ); if ( sel >= ID_SFTP_BOOKMARK_FIRST && sel <= ID_SFTP_BOOKMARK_LAST ) { // A bookmark was selected CallAfter( &SFTPTreeView::DoBuildTree, bookmarks.Item(sel - ID_SFTP_BOOKMARK_FIRST) ); } else if ( sel == ID_SFTP_BOOKMARK_SETTINGS ) { // Bookmark settings CallAfter( &SFTPTreeView::ManageBookmarks ); } } else { try { // sanity if ( !m_sftp || !m_sftp->IsConnected() ) { return; } // Get the current selection MyClientDataVect_t selections = GetSelectionsItemData(); if ( selections.size() != 1 ) return; MyClientData* cd = selections.at(0); CHECK_PTR_RET( cd ); if ( !cd->IsFolder() ) return; m_account.AddBookmark( cd->GetFullPath() ); SFTPSettings settings; settings.Load(); settings.UpdateAccount( m_account ); settings.Save(); } catch (clException &e) { ::wxMessageBox(e.What(), "SFTP", wxICON_ERROR|wxOK|wxCENTER); } } }
void WizardsPlugin::OnGizmosAUI(wxAuiToolBarEvent& e) { if (e.IsDropDownClicked()) { wxAuiToolBar* tb = static_cast<wxAuiToolBar*>(e.GetEventObject()); tb->SetToolSticky(e.GetId(), true); // line up our menu with the button wxRect rect = tb->GetToolRect(e.GetId()); wxPoint pt = tb->ClientToScreen(rect.GetBottomLeft()); pt = m_mgr->GetTheApp()->GetTopWindow()->ScreenToClient(pt); DoPopupButtonMenu(pt); tb->SetToolSticky(e.GetId(), false); } }
void GitConsole::DoOnDropdown(wxAuiToolBarEvent& e, const wxString& commandName, int id) { if(!e.IsDropDownClicked()) { e.Skip(); return; } GitEntry data; { clConfig conf("git.conf"); conf.ReadItem(&data); } // Force conf out of scope, else its dtor clobbers the GitConsole::OnDropDownMenuEvent Save() GitCommandsEntries& ce = data.GetGitCommandsEntries(commandName); vGitLabelCommands_t entries = ce.GetCommands(); int lastUsed = ce.GetLastUsedCommandIndex(); wxArrayString arr; wxMenu menu; for(size_t n = 0; n < entries.size(); ++n) { wxMenuItem* item = menu.AppendRadioItem(n, entries.at(n).label); item->Check(n == (size_t)lastUsed); arr.Add(entries.at(n).command); } menu.Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(GitConsole::OnDropDownMenuEvent), this, 0, arr.GetCount(), new GitCommandData(arr, commandName, id)); wxAuiToolBar* auibar = dynamic_cast<wxAuiToolBar*>(e.GetEventObject()); if(auibar) { clAuiToolStickness ts(auibar, e.GetToolId()); wxRect rect = auibar->GetToolRect(e.GetId()); wxPoint pt = auibar->ClientToScreen(rect.GetBottomLeft()); pt = ScreenToClient(pt); PopupMenu(&menu, pt); } menu.Unbind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(GitConsole::OnDropDownMenuEvent), this, 0, arr.GetCount(), new GitCommandData(arr, commandName, id)); }
void CFrame::OnDropDownToolbarItem(wxAuiToolBarEvent& event) { event.Skip(); ClearStatusBar(); if (event.IsDropDownClicked()) { wxAuiToolBar* tb = static_cast<wxAuiToolBar*>(event.GetEventObject()); tb->SetToolSticky(event.GetId(), true); // create the popup menu wxMenu* menuPopup = new wxMenu; wxMenuItem* Item = new wxMenuItem(menuPopup, IDM_ADD_PERSPECTIVE, _("Create new perspective")); menuPopup->Append(Item); if (Perspectives.size() > 0) { menuPopup->Append(new wxMenuItem(menuPopup)); for (u32 i = 0; i < Perspectives.size(); i++) { wxMenuItem* mItem = new wxMenuItem(menuPopup, IDM_PERSPECTIVES_0 + i, StrToWxStr(Perspectives[i].Name), wxT(""), wxITEM_CHECK); menuPopup->Append(mItem); if (i == ActivePerspective) { mItem->Check(true); } } } // line up our menu with the button wxRect rect = tb->GetToolRect(event.GetId()); wxPoint pt = tb->ClientToScreen(rect.GetBottomLeft()); pt = ScreenToClient(pt); // show PopupMenu(menuPopup, pt); // make sure the button is "un-stuck" tb->SetToolSticky(event.GetId(), false); } }
void DiffSideBySidePanelBase::ShowAuiToolMenu(wxAuiToolBarEvent& event) { event.Skip(); if (event.IsDropDownClicked()) { wxAuiToolBar* toolbar = wxDynamicCast(event.GetEventObject(), wxAuiToolBar); if (toolbar) { wxAuiToolBarItem* item = toolbar->FindTool(event.GetId()); if (item) { std::map<int, wxMenu*>::iterator iter = m_dropdownMenus.find(item->GetId()); if (iter != m_dropdownMenus.end()) { event.Skip(false); wxPoint pt = event.GetItemRect().GetBottomLeft(); pt.y++; toolbar->PopupMenu(iter->second, pt); } } } } }
void SFTPTreeView::OnOpenTerminal(wxAuiToolBarEvent& event) { // Open terminal to the selected account if(event.IsDropDownClicked()) { SFTPTreeViewBase::ShowAuiToolMenu(event); } else { SSHAccountInfo account; if(!GetAccountFromUser(account)) { return; } wxString connectString; connectString << account.GetUsername() << "@" << account.GetHost(); SFTPSettings settings; settings.Load(); const wxString& sshClient = settings.GetSshClient(); FileUtils::OpenSSHTerminal(sshClient, connectString, account.GetPassword(), account.GetPort()); } }
// Toolbar void CFrame::OnDropDownSettingsToolbar(wxAuiToolBarEvent& event) { event.Skip(); ClearStatusBar(); if (event.IsDropDownClicked()) { wxAuiToolBar* Tb = static_cast<wxAuiToolBar*>(event.GetEventObject()); Tb->SetToolSticky(event.GetId(), true); // Create the popup menu wxMenu* menuPopup = new wxMenu; wxMenuItem* Item = new wxMenuItem(menuPopup, IDM_PERSPECTIVES_ADD_PANE, _("Add new pane")); menuPopup->Append(Item); menuPopup->Append(new wxMenuItem(menuPopup)); Item = new wxMenuItem(menuPopup, IDM_TAB_SPLIT, _("Tab split"), wxT(""), wxITEM_CHECK); menuPopup->Append(Item); Item->Check(m_bTabSplit); Item = new wxMenuItem(menuPopup, IDM_NO_DOCKING, _("No docking"), wxT(""), wxITEM_CHECK); menuPopup->Append(Item); Item->Check(m_bNoDocking); // Line up our menu with the button wxRect rect = Tb->GetToolRect(event.GetId()); wxPoint Pt = Tb->ClientToScreen(rect.GetBottomLeft()); Pt = ScreenToClient(Pt); // Show PopupMenu(menuPopup, Pt); // Make the button un-stuck again if (!m_bEdit) { Tb->SetToolSticky(event.GetId(), false); } } }
void wxGISApplication::OnToolDropDown(wxAuiToolBarEvent& event) { if(event.IsDropDownClicked()) { wxGISCommand* pCmd = GetCommand(event.GetToolId()); m_pDropDownCommand = dynamic_cast<IDropDownCommand*>(pCmd); if(m_pDropDownCommand) { wxMenu* pMenu = m_pDropDownCommand->GetDropDownMenu(); if(pMenu) { PushEventHandler(pMenu); PopupMenu(pMenu, event.GetItemRect().GetBottomLeft()); PopEventHandler(); delete pMenu; return; } } } event.Skip(); }
void HtMainFrame::OnEditUndoDropDown (wxAuiToolBarEvent &event) { if (event.IsDropDownClicked()) { wxAuiToolBar *tb = static_cast<wxAuiToolBar *>(event.GetEventObject()); tb->SetToolSticky(event.GetId(), true); wxMenu menuPopup; menuPopup.Append(wxID_ANY, wxT("Not implemented")); // line up our menu with the button wxRect rect = tb->GetToolRect(event.GetId()); wxPoint pt = tb->ClientToScreen(rect.GetBottomLeft()); pt = ScreenToClient(pt); PopupMenu(&menuPopup, pt); // make sure the button is "un-stuck" tb->SetToolSticky(event.GetId(), false); } }
void wxAuiToolBarXmlHandler::MenuHandler::OnDropDown(wxAuiToolBarEvent& event) { if (event.IsDropDownClicked()) { wxAuiToolBar *toobar = wxDynamicCast(event.GetEventObject(), wxAuiToolBar); if (toobar != NULL) { wxAuiToolBarItem *item = toobar->FindTool(event.GetId()); if (item != NULL) { wxMenu * const menu = m_menus[item->GetUserData()]; if (menu != NULL) { wxRect rect = item->GetSizerItem()->GetRect(); toobar->PopupMenu(menu, rect.GetRight() - toobar->FromDIP(10), rect.GetBottom()); } } } } else { event.Skip(); } }