Add Context Menu and full path tooltip to tabs

This commit is contained in:
Tim Warren 2015-04-24 16:55:10 -04:00
parent 61a4adeebb
commit c39dd8b9ac
6 changed files with 26 additions and 16 deletions

View File

@ -1,9 +1,8 @@
#include "EditPane.h" #include "EditPane.h"
EditPane::EditPane( EditPane::EditPane(
wxWindow *parent, wxWindowID id, const wxPoint &pos, wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size
const wxSize &size, long style ) : wxStyledTextCtrl (parent, id, pos, size, wxBORDER_NONE)
) : wxStyledTextCtrl (parent, id, pos, size, style)
{ {
#include <config/languages_json.h> #include <config/languages_json.h>
lang_config = new TyroConfig(); lang_config = new TyroConfig();

View File

@ -13,12 +13,7 @@ public:
wxWindow *parent, wxWindow *parent,
wxWindowID id = wxID_ANY, wxWindowID id = wxID_ANY,
const wxPoint &post = wxDefaultPosition, const wxPoint &post = wxDefaultPosition,
const wxSize &size = wxDefaultSize, const wxSize &size = wxDefaultSize
long style =
#ifndef __WXMAC__
wxSUNKEN_BORDER |
#endif
wxVSCROLL
); );
~EditPane(); ~EditPane();
wxFileName fileName; wxFileName fileName;
@ -37,6 +32,7 @@ private:
enum enum
{ {
MARGIN_FOLD, MARGIN_FOLD,
MARGIN_SYMBOL,
MARGIN_LINE_NUMBERS MARGIN_LINE_NUMBERS
}; };
bool FileReadable(); bool FileReadable();

View File

@ -4,7 +4,7 @@
#include "MainFrame.h" #include "MainFrame.h"
// Top level menus // Top level menus
enum { enum myMenuIds {
myFILE_MENU, myFILE_MENU,
myEDIT_MENU, myEDIT_MENU,
myVIEW_MENU, myVIEW_MENU,
@ -13,7 +13,7 @@ enum {
}; };
// Menu ids // Menu ids
enum { enum myMenuItemIds {
myID_VIEW_WHITESPACE = wxID_HIGHEST myID_VIEW_WHITESPACE = wxID_HIGHEST
}; };
@ -188,6 +188,7 @@ void MainFrame::BindEvents()
Bind(wxEVT_COMMAND_MENU_SELECTED, &MainFrame::OnEditUndo, this, wxID_UNDO); Bind(wxEVT_COMMAND_MENU_SELECTED, &MainFrame::OnEditUndo, this, wxID_UNDO);
Bind(wxEVT_COMMAND_MENU_SELECTED, &MainFrame::OnEditRedo, this, wxID_REDO); Bind(wxEVT_COMMAND_MENU_SELECTED, &MainFrame::OnEditRedo, this, wxID_REDO);
Bind(wxEVT_COMMAND_MENU_SELECTED, &MainFrame::OnToggleWhitespace, this, myID_VIEW_WHITESPACE); Bind(wxEVT_COMMAND_MENU_SELECTED, &MainFrame::OnToggleWhitespace, this, myID_VIEW_WHITESPACE);
Bind(wxEVT_AUINOTEBOOK_TAB_RIGHT_DOWN, &MainFrame::OnTabContextMenu, this, wxID_ANY);
} }
void MainFrame::OnNew(wxCommandEvent &WXUNUSED(event)) void MainFrame::OnNew(wxCommandEvent &WXUNUSED(event))
@ -417,3 +418,12 @@ void MainFrame::EnableEditControls(bool enable)
this->toolBar->EnableTool(wxID_CUT, enable); this->toolBar->EnableTool(wxID_CUT, enable);
this->toolBar->EnableTool(wxID_PASTE, enable); this->toolBar->EnableTool(wxID_PASTE, enable);
} }
void MainFrame::OnTabContextMenu(wxAuiNotebookEvent &WXUNUSED(event))
{
// Create Menu
wxMenu *contextMenu = new wxMenu();
contextMenu->Append(wxID_CLOSE, "&Close\tCtrl+W", "Close the current tab");
this->PopupMenu(contextMenu);
}

View File

@ -34,7 +34,7 @@ class MainFrame: public wxFrame
void BindEvents(); void BindEvents();
void EnableEditControls(bool enable=true); void EnableEditControls(bool enable=true);
// Event handlers // Main Menu Event handlers
void OnNew(wxCommandEvent &event); void OnNew(wxCommandEvent &event);
void OnOpen(wxCommandEvent &event); void OnOpen(wxCommandEvent &event);
void OnClose(wxAuiNotebookEvent &event); void OnClose(wxAuiNotebookEvent &event);
@ -52,6 +52,9 @@ class MainFrame: public wxFrame
void OnToggleWhitespace(wxCommandEvent &event); void OnToggleWhitespace(wxCommandEvent &event);
void OnQuit(wxCommandEvent &event); void OnQuit(wxCommandEvent &event);
void OnAbout(wxCommandEvent &event); void OnAbout(wxCommandEvent &event);
// Tab Context Menu Event handlers
void OnTabContextMenu(wxAuiNotebookEvent &event);
}; };

View File

@ -53,6 +53,8 @@ void TabContainer::AddTab(wxString filePath)
{ {
this->AddPage(editor, caption, true); this->AddPage(editor, caption, true);
this->SetPageToolTip(this->GetPageIndex(this->GetCurrentPage()), fileName.GetFullPath());
return; return;
} }

View File

@ -12,9 +12,9 @@
#include "EditPane.h" #include "EditPane.h"
static long tab_style = wxAUI_NB_TAB_MOVE | wxAUI_NB_SCROLL_BUTTONS static long tab_style = wxBORDER_NONE | wxAUI_NB_TAB_SPLIT |wxAUI_NB_TAB_MOVE
| wxAUI_NB_WINDOWLIST_BUTTON | wxAUI_NB_CLOSE_ON_ALL_TABS | wxAUI_NB_SCROLL_BUTTONS | wxAUI_NB_WINDOWLIST_BUTTON
| wxAUI_NB_MIDDLE_CLICK_CLOSE | wxAUI_NB_TOP; | wxAUI_NB_CLOSE_ON_ACTIVE_TAB | wxAUI_NB_MIDDLE_CLICK_CLOSE | wxAUI_NB_TOP;
class TabContainer: public wxAuiNotebook class TabContainer: public wxAuiNotebook
{ {