Tweak widget display for more apparent speed on tab opening/closing, toggle menus based on the current tab, and make globals more obvious
This commit is contained in:
parent
ccb3de679a
commit
b87d73ec86
@ -6,12 +6,12 @@
|
|||||||
#include "widgets/widget.h"
|
#include "widgets/widget.h"
|
||||||
|
|
||||||
#include <wx/app.h>
|
#include <wx/app.h>
|
||||||
#include <wx/debug.h>
|
|
||||||
|
|
||||||
// Some global stuff
|
// Some global stuff
|
||||||
wxConfigBase *Config;
|
wxConfigBase *Glob_config;
|
||||||
TyroMenu *mbar;
|
TyroMenu *Glob_menu_bar;
|
||||||
MainFrame *main_frame;
|
MainFrame *Glob_main_frame;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class with main method
|
* Class with main method
|
||||||
@ -29,15 +29,17 @@ public:
|
|||||||
this->SetAppName(APP_NAME);
|
this->SetAppName(APP_NAME);
|
||||||
this->SetVendorName(APP_VENDOR);
|
this->SetVendorName(APP_VENDOR);
|
||||||
|
|
||||||
Config = wxConfigBase::Get();
|
// Initialize globals
|
||||||
mbar = new TyroMenu();
|
Glob_config = wxConfigBase::Get();
|
||||||
main_frame = new MainFrame(0L, APP_NAME);
|
Glob_menu_bar = new TyroMenu();
|
||||||
|
Glob_main_frame = new MainFrame(0L, APP_NAME);
|
||||||
|
|
||||||
SetTopWindow(main_frame);
|
SetTopWindow(Glob_main_frame);
|
||||||
|
|
||||||
main_frame->Layout();
|
// Setup Main Window
|
||||||
main_frame->CenterOnScreen();
|
Glob_main_frame->Layout();
|
||||||
main_frame->Show(true);
|
Glob_main_frame->CenterOnScreen();
|
||||||
|
Glob_main_frame->Show(true);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,16 @@ LangConfig::LangConfig()
|
|||||||
{
|
{
|
||||||
this->LoadJson(languages_json);
|
this->LoadJson(languages_json);
|
||||||
this->lang = "";
|
this->lang = "";
|
||||||
|
|
||||||
|
// "cache" reverse map of languages to their keys
|
||||||
|
JsonValue langList = this->GetRoot();
|
||||||
|
JsonValue::iterator it;
|
||||||
|
|
||||||
|
for (it = langList.begin(); it != langList.end(); ++it)
|
||||||
|
{
|
||||||
|
JsonValue langObj = *it;
|
||||||
|
reverseMap[langObj.get("name", JsonValue()).asString()] = it.key().asString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LangConfig::~LangConfig()
|
LangConfig::~LangConfig()
|
||||||
@ -99,22 +109,42 @@ void LangConfig::SetLang(string lang)
|
|||||||
this->lang = lang;
|
this->lang = lang;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the current language key
|
||||||
|
*/
|
||||||
string LangConfig::GetLang()
|
string LangConfig::GetLang()
|
||||||
{
|
{
|
||||||
return this->lang;
|
return this->lang;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the name attribute of the currently selected language
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
string LangConfig::GetCurrentLangName()
|
||||||
|
{
|
||||||
|
return this->GetRoot()
|
||||||
|
.get(this->lang, JsonValue())
|
||||||
|
.get("name", JsonValue())
|
||||||
|
.asString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the list of languages available
|
||||||
|
*
|
||||||
|
* @return StringMap
|
||||||
|
*/
|
||||||
StringMap LangConfig::GetLangList()
|
StringMap LangConfig::GetLangList()
|
||||||
{
|
{
|
||||||
JsonValue langList = this->GetRoot();
|
StringMap revList = this->reverseMap;
|
||||||
JsonValue::iterator it;
|
StringMap::iterator it;
|
||||||
|
|
||||||
StringMap outputList;
|
StringMap outputList;
|
||||||
|
|
||||||
for (it = langList.begin(); it != langList.end(); ++it)
|
for (it = revList.begin(); it != revList.end(); ++it)
|
||||||
{
|
{
|
||||||
JsonValue langObj = *it;
|
outputList[it->second] = it->first;
|
||||||
outputList[it.key().asString()] = langObj.get("name", JsonValue()).asString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return outputList;
|
return outputList;
|
||||||
|
@ -14,8 +14,10 @@ public:
|
|||||||
JsonValue GetKeywordList(string lang="none");
|
JsonValue GetKeywordList(string lang="none");
|
||||||
JsonValue GetLexerMap(string lang="none");
|
JsonValue GetLexerMap(string lang="none");
|
||||||
StringMap GetLangList();
|
StringMap GetLangList();
|
||||||
|
string GetCurrentLangName();
|
||||||
private:
|
private:
|
||||||
string lang;
|
string lang;
|
||||||
|
StringMap reverseMap;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -417,3 +417,14 @@ void EditPane::_ApplyTheme(JsonValue &lexer_map)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the display name of the currently selected
|
||||||
|
* language used for highlighting
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
string EditPane::GetCurrentLang()
|
||||||
|
{
|
||||||
|
return lang_config->GetCurrentLangName();
|
||||||
|
}
|
||||||
|
@ -20,6 +20,7 @@ public:
|
|||||||
bool SaveFile();
|
bool SaveFile();
|
||||||
bool SaveFile(const wxString &filename);
|
bool SaveFile(const wxString &filename);
|
||||||
void ApplyTheme(string lang, string theme="");
|
void ApplyTheme(string lang, string theme="");
|
||||||
|
string GetCurrentLang();
|
||||||
private:
|
private:
|
||||||
StringConstMap lexerMap;
|
StringConstMap lexerMap;
|
||||||
StringConstMap::iterator lexerMapIt;
|
StringConstMap::iterator lexerMapIt;
|
||||||
@ -28,7 +29,6 @@ private:
|
|||||||
enum myMargins
|
enum myMargins
|
||||||
{
|
{
|
||||||
MARGIN_FOLD,
|
MARGIN_FOLD,
|
||||||
MARGIN_SYMBOL,
|
|
||||||
MARGIN_LINE_NUMBERS
|
MARGIN_LINE_NUMBERS
|
||||||
};
|
};
|
||||||
bool FileReadable();
|
bool FileReadable();
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#include "widget.h"
|
#include "widget.h"
|
||||||
|
|
||||||
// Nasty globals
|
// Nasty globals
|
||||||
extern TyroMenu *mbar;
|
extern TyroMenu *Glob_menu_bar;
|
||||||
static TabContainer *notebook;
|
static TabContainer *notebook;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -13,24 +13,18 @@ static TabContainer *notebook;
|
|||||||
MainFrame::MainFrame(wxFrame *frame, const wxString &title)
|
MainFrame::MainFrame(wxFrame *frame, const wxString &title)
|
||||||
: wxFrame(frame, -1, title)
|
: wxFrame(frame, -1, title)
|
||||||
{
|
{
|
||||||
#include "../../resources/xpm/tyro.xpm"
|
|
||||||
|
|
||||||
findReplaceData = new wxFindReplaceData(wxFR_DOWN);
|
findReplaceData = new wxFindReplaceData(wxFR_DOWN);
|
||||||
|
|
||||||
|
// Set the frame icon
|
||||||
|
#include "../../resources/xpm/tyro.xpm"
|
||||||
wxIcon app_icon(tyro_icon);
|
wxIcon app_icon(tyro_icon);
|
||||||
this->SetIcon(app_icon);
|
this->SetIcon(app_icon);
|
||||||
|
|
||||||
// Apply the menu bar to the current frame
|
// Apply the menu bar to the current frame
|
||||||
#ifdef __WXMAC__
|
this->SetMenuBar(Glob_menu_bar);
|
||||||
wxMenuBar::MacSetCommonMenuBar(mbar);
|
|
||||||
#endif // __WXMAC__
|
|
||||||
SetMenuBar(mbar);
|
|
||||||
|
|
||||||
this->SetupStatusBar();
|
this->SetupStatusBar();
|
||||||
|
|
||||||
// Create the tab container
|
|
||||||
notebook = new TabContainer(this);
|
|
||||||
|
|
||||||
this->DoLayout();
|
this->DoLayout();
|
||||||
this->BindEvents();
|
this->BindEvents();
|
||||||
}
|
}
|
||||||
@ -53,6 +47,9 @@ MainFrame::~MainFrame()
|
|||||||
*/
|
*/
|
||||||
void MainFrame::DoLayout()
|
void MainFrame::DoLayout()
|
||||||
{
|
{
|
||||||
|
// Create the tab container
|
||||||
|
notebook = new TabContainer(this);
|
||||||
|
|
||||||
this->manager = new wxAuiManager(this);
|
this->manager = new wxAuiManager(this);
|
||||||
this->SetupToolbar();
|
this->SetupToolbar();
|
||||||
|
|
||||||
@ -81,9 +78,7 @@ void MainFrame::DoLayout()
|
|||||||
*/
|
*/
|
||||||
void MainFrame::SetupStatusBar()
|
void MainFrame::SetupStatusBar()
|
||||||
{
|
{
|
||||||
CreateStatusBar(2);
|
CreateStatusBar(3);
|
||||||
SetStatusText(_(""), 0);
|
|
||||||
SetStatusText(_(""), 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -94,7 +89,7 @@ void MainFrame::SetupStatusBar()
|
|||||||
void MainFrame::SetupToolbar()
|
void MainFrame::SetupToolbar()
|
||||||
{
|
{
|
||||||
// Icon files
|
// Icon files
|
||||||
#ifdef __WXMAC__
|
#ifndef __WXGTK__
|
||||||
#include "../../resources/xpm/32/new.xpm"
|
#include "../../resources/xpm/32/new.xpm"
|
||||||
#include "../../resources/xpm/32/open.xpm"
|
#include "../../resources/xpm/32/open.xpm"
|
||||||
#include "../../resources/xpm/32/save.xpm"
|
#include "../../resources/xpm/32/save.xpm"
|
||||||
@ -108,23 +103,7 @@ void MainFrame::SetupToolbar()
|
|||||||
wxBitmap copy_icon(copy);
|
wxBitmap copy_icon(copy);
|
||||||
wxBitmap cut_icon(cut);
|
wxBitmap cut_icon(cut);
|
||||||
wxBitmap paste_icon(paste);
|
wxBitmap paste_icon(paste);
|
||||||
#endif
|
#else
|
||||||
#ifdef __WXMSW__
|
|
||||||
#include "../../resources/xpm/24/new.xpm"
|
|
||||||
#include "../../resources/xpm/24/open.xpm"
|
|
||||||
#include "../../resources/xpm/24/save.xpm"
|
|
||||||
#include "../../resources/xpm/24/cut.xpm"
|
|
||||||
#include "../../resources/xpm/24/copy.xpm"
|
|
||||||
#include "../../resources/xpm/24/paste.xpm"
|
|
||||||
|
|
||||||
wxBitmap new_file_icon(new_file);
|
|
||||||
wxBitmap open_file_icon(open);
|
|
||||||
wxBitmap save_file_icon(save);
|
|
||||||
wxBitmap copy_icon(copy);
|
|
||||||
wxBitmap cut_icon(cut);
|
|
||||||
wxBitmap paste_icon(paste);
|
|
||||||
#endif
|
|
||||||
#ifdef __WXGTK__
|
|
||||||
wxBitmap new_file_icon = wxArtProvider::GetBitmap(wxART_NEW, wxART_TOOLBAR);
|
wxBitmap new_file_icon = wxArtProvider::GetBitmap(wxART_NEW, wxART_TOOLBAR);
|
||||||
wxBitmap open_file_icon = wxArtProvider::GetBitmap(wxART_FILE_OPEN, wxART_TOOLBAR);
|
wxBitmap open_file_icon = wxArtProvider::GetBitmap(wxART_FILE_OPEN, wxART_TOOLBAR);
|
||||||
wxBitmap save_file_icon = wxArtProvider::GetBitmap(wxART_FILE_SAVE, wxART_TOOLBAR);
|
wxBitmap save_file_icon = wxArtProvider::GetBitmap(wxART_FILE_SAVE, wxART_TOOLBAR);
|
||||||
@ -139,7 +118,6 @@ void MainFrame::SetupToolbar()
|
|||||||
toolBar->AddTool(wxID_OPEN, "Open", open_file_icon, "Open file");
|
toolBar->AddTool(wxID_OPEN, "Open", open_file_icon, "Open file");
|
||||||
toolBar->AddTool(wxID_SAVE, "Save", save_file_icon, "Save file");
|
toolBar->AddTool(wxID_SAVE, "Save", save_file_icon, "Save file");
|
||||||
|
|
||||||
|
|
||||||
toolBar->AddSeparator();
|
toolBar->AddSeparator();
|
||||||
|
|
||||||
toolBar->AddTool(wxID_COPY, "Copy", copy_icon, "Copy");
|
toolBar->AddTool(wxID_COPY, "Copy", copy_icon, "Copy");
|
||||||
@ -225,10 +203,12 @@ void MainFrame::OnOpen(wxCommandEvent &WXUNUSED(event))
|
|||||||
listcount = filelist.GetCount();
|
listcount = filelist.GetCount();
|
||||||
|
|
||||||
// Open a new tab for each file
|
// Open a new tab for each file
|
||||||
|
notebook->Hide();
|
||||||
for (int i = 0; i < listcount; i++)
|
for (int i = 0; i < listcount; i++)
|
||||||
{
|
{
|
||||||
notebook->AddTab(filelist[i]);
|
notebook->AddTab(filelist[i]);
|
||||||
}
|
}
|
||||||
|
notebook->Show();
|
||||||
|
|
||||||
this->EnableEditControls(true);
|
this->EnableEditControls(true);
|
||||||
}
|
}
|
||||||
@ -242,6 +222,7 @@ void MainFrame::OnCloseTab(wxCommandEvent &WXUNUSED(event))
|
|||||||
{
|
{
|
||||||
int current_tab = notebook->GetSelection();
|
int current_tab = notebook->GetSelection();
|
||||||
|
|
||||||
|
notebook->Hide();
|
||||||
notebook->DeletePage(current_tab);
|
notebook->DeletePage(current_tab);
|
||||||
|
|
||||||
if (notebook->GetPageCount() == 0)
|
if (notebook->GetPageCount() == 0)
|
||||||
@ -249,6 +230,7 @@ void MainFrame::OnCloseTab(wxCommandEvent &WXUNUSED(event))
|
|||||||
this->EnableEditControls(false);
|
this->EnableEditControls(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
notebook->Show();
|
||||||
this->manager->Update();
|
this->manager->Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -259,8 +241,10 @@ void MainFrame::OnCloseTab(wxCommandEvent &WXUNUSED(event))
|
|||||||
*/
|
*/
|
||||||
void MainFrame::OnCloseAll(wxCommandEvent &WXUNUSED(event))
|
void MainFrame::OnCloseAll(wxCommandEvent &WXUNUSED(event))
|
||||||
{
|
{
|
||||||
|
notebook->Hide();
|
||||||
notebook->DeleteAllPages();
|
notebook->DeleteAllPages();
|
||||||
this->EnableEditControls(false);
|
this->EnableEditControls(false);
|
||||||
|
notebook->Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -598,7 +582,7 @@ void MainFrame::OnToggleLineEndings(wxCommandEvent &event)
|
|||||||
void MainFrame::EnableEditControls(bool enable)
|
void MainFrame::EnableEditControls(bool enable)
|
||||||
{
|
{
|
||||||
// Update menu items
|
// Update menu items
|
||||||
mbar->EnableEditControls(enable);
|
Glob_menu_bar->EnableEditControls(enable);
|
||||||
|
|
||||||
// Toggle toolbar items
|
// Toggle toolbar items
|
||||||
this->toolBar->EnableTool(wxID_SAVE, enable);
|
this->toolBar->EnableTool(wxID_SAVE, enable);
|
||||||
|
@ -4,9 +4,19 @@
|
|||||||
|
|
||||||
#include "widget.h"
|
#include "widget.h"
|
||||||
|
|
||||||
extern MainFrame *main_frame;
|
extern MainFrame *Glob_main_frame;
|
||||||
|
extern TyroMenu *Glob_menu_bar;
|
||||||
static unsigned long untitled_document_count = 0;
|
static unsigned long untitled_document_count = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param wxWindow* parent
|
||||||
|
* @param wxWindowID id
|
||||||
|
* @param const wxPoint& pos
|
||||||
|
* @param const wxSize& size
|
||||||
|
* @param long style
|
||||||
|
*/
|
||||||
TabContainer::TabContainer(
|
TabContainer::TabContainer(
|
||||||
wxWindow* parent,
|
wxWindow* parent,
|
||||||
wxWindowID id,
|
wxWindowID id,
|
||||||
@ -21,6 +31,9 @@ TabContainer::TabContainer(
|
|||||||
Bind(wxEVT_AUINOTEBOOK_PAGE_CHANGED, &TabContainer::OnTabSwitch, this, wxID_ANY);
|
Bind(wxEVT_AUINOTEBOOK_PAGE_CHANGED, &TabContainer::OnTabSwitch, this, wxID_ANY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Destructor
|
||||||
|
*/
|
||||||
TabContainer::~TabContainer()
|
TabContainer::~TabContainer()
|
||||||
{
|
{
|
||||||
wxLogDebug("TabContainer destructor called");
|
wxLogDebug("TabContainer destructor called");
|
||||||
@ -63,6 +76,9 @@ void TabContainer::AddTab(wxString filePath)
|
|||||||
|
|
||||||
this->SetPageToolTip(this->GetPageIndex(this->GetCurrentPage()), fileName.GetFullPath());
|
this->SetPageToolTip(this->GetPageIndex(this->GetCurrentPage()), fileName.GetFullPath());
|
||||||
|
|
||||||
|
// Select the appropriate language in the language menu
|
||||||
|
Glob_menu_bar->SetCurrentLanguage(editor->GetCurrentLang());
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,7 +155,7 @@ void TabContainer::OnClosed(wxAuiNotebookEvent &WXUNUSED(event))
|
|||||||
{
|
{
|
||||||
if (this->GetPageCount() == 0)
|
if (this->GetPageCount() == 0)
|
||||||
{
|
{
|
||||||
main_frame->EnableEditControls(false);
|
Glob_main_frame->EnableEditControls(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -166,7 +182,7 @@ void TabContainer::OnTabContextMenu(wxAuiNotebookEvent &WXUNUSED(event))
|
|||||||
void TabContainer::OnCloseAll(wxCommandEvent &WXUNUSED(event))
|
void TabContainer::OnCloseAll(wxCommandEvent &WXUNUSED(event))
|
||||||
{
|
{
|
||||||
this->DeleteAllPages();
|
this->DeleteAllPages();
|
||||||
main_frame->EnableEditControls(false);
|
Glob_main_frame->EnableEditControls(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -175,9 +191,15 @@ void TabContainer::OnCloseAll(wxCommandEvent &WXUNUSED(event))
|
|||||||
* @param wxAuiNotebookEvent& event
|
* @param wxAuiNotebookEvent& event
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
void TabContainer::OnTabSwitch(wxAuiNotebookEvent &WXUNUSED(event))
|
void TabContainer::OnTabSwitch(wxAuiNotebookEvent &event)
|
||||||
{
|
{
|
||||||
//EditPane *editor = this->GetEditor(event.GetSelection());
|
EditPane *editor = this->GetEditor(event.GetSelection());
|
||||||
|
|
||||||
// @TODO: Update menu item checkboxes based on the state of the current editor
|
// Update view menu options
|
||||||
|
Glob_menu_bar->SetIdChecked(myID_VIEW_WHITESPACE, (editor->GetViewWhiteSpace() == wxSTC_WS_VISIBLEALWAYS));
|
||||||
|
Glob_menu_bar->SetIdChecked(myID_VIEW_LINE_ENDINGS, editor->GetViewEOL());
|
||||||
|
Glob_menu_bar->SetIdChecked(myID_LINE_WRAP, (editor->GetWrapMode() == wxSTC_WRAP_WORD));
|
||||||
|
|
||||||
|
// Update language menu selection
|
||||||
|
Glob_menu_bar->SetCurrentLanguage(editor->GetCurrentLang());
|
||||||
}
|
}
|
@ -27,6 +27,7 @@ TyroMenu::TyroMenu()
|
|||||||
TyroMenu::~TyroMenu()
|
TyroMenu::~TyroMenu()
|
||||||
{
|
{
|
||||||
wxLogDebug("TyroMenu Destructor Called.");
|
wxLogDebug("TyroMenu Destructor Called.");
|
||||||
|
delete lang_config;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TyroMenu::SetupMainMenus()
|
void TyroMenu::SetupMainMenus()
|
||||||
@ -71,9 +72,11 @@ void TyroMenu::SetupLangMenu()
|
|||||||
|
|
||||||
StringMap::iterator last = langs.end();
|
StringMap::iterator last = langs.end();
|
||||||
|
|
||||||
|
langMenu->Append(wxID_ANY, "Plain Text", "Don't highlight file", wxITEM_CHECK);
|
||||||
|
|
||||||
for (it = langs.begin(); it != last; ++it)
|
for (it = langs.begin(); it != last; ++it)
|
||||||
{
|
{
|
||||||
langMenu->Append(wxID_ANY, it->second, "Hightlight file as " + it->second, wxITEM_CHECK);
|
langMenu->Append(wxID_ANY, it->second, "Highlight file as " + it->second, wxITEM_CHECK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,6 +93,18 @@ void TyroMenu::EnableEditControls(bool enable)
|
|||||||
this->EnableEntireMenu(myLANG_MENU, this->langMenu, enable);
|
this->EnableEntireMenu(myLANG_MENU, this->langMenu, enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check the menu item associated with the specified id
|
||||||
|
*
|
||||||
|
* @param int id
|
||||||
|
* @param bool checked
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
void TyroMenu::SetIdChecked(int id, bool checked)
|
||||||
|
{
|
||||||
|
this->FindItem(id)->Check(checked);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable/disable all the items in the menu, for environments
|
* Enable/disable all the items in the menu, for environments
|
||||||
* that don't properly support disabling the menu by the parent label (like Ubuntu's Unity)
|
* that don't properly support disabling the menu by the parent label (like Ubuntu's Unity)
|
||||||
@ -112,5 +127,30 @@ void TyroMenu::EnableEntireMenu(size_t menuId, wxMenu *menu, bool enable)
|
|||||||
{
|
{
|
||||||
wxMenuItem *current = *iter;
|
wxMenuItem *current = *iter;
|
||||||
current->Enable(enable);
|
current->Enable(enable);
|
||||||
|
|
||||||
|
// Uncheck all the items
|
||||||
|
if (current->IsCheckable())
|
||||||
|
{
|
||||||
|
current->Check(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change the language used for highlighting
|
||||||
|
*
|
||||||
|
* @param string lang
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
void TyroMenu::SetCurrentLanguage(string lang)
|
||||||
|
{
|
||||||
|
if (lang == "")
|
||||||
|
{
|
||||||
|
lang = "Plain Text";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clear checks in the current menu
|
||||||
|
this->EnableEntireMenu(myLANG_MENU, langMenu, true);
|
||||||
|
|
||||||
|
this->Check(this->FindMenuItem("&Language", lang), true);
|
||||||
|
}
|
@ -11,6 +11,8 @@ public:
|
|||||||
TyroMenu();
|
TyroMenu();
|
||||||
~TyroMenu();
|
~TyroMenu();
|
||||||
void EnableEditControls(bool enable);
|
void EnableEditControls(bool enable);
|
||||||
|
void SetIdChecked(int id, bool checked);
|
||||||
|
void SetCurrentLanguage(string lang);
|
||||||
private:
|
private:
|
||||||
wxMenu *fileMenu;
|
wxMenu *fileMenu;
|
||||||
wxMenu *editMenu;
|
wxMenu *editMenu;
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
/*
|
/**
|
||||||
* File: widget.h
|
* Common header for widgets
|
||||||
* Author: twarren
|
|
||||||
*
|
|
||||||
* Created on May 7, 2015, 2:35 PM
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef TYRO_WIDGET_H
|
#ifndef TYRO_WIDGET_H
|
||||||
#define TYRO_WIDGET_H
|
#define TYRO_WIDGET_H
|
||||||
|
|
||||||
@ -12,9 +8,6 @@
|
|||||||
#include "../wx_common.h"
|
#include "../wx_common.h"
|
||||||
|
|
||||||
// Base widgets
|
// Base widgets
|
||||||
#include <wx/cmdline.h>
|
|
||||||
#include <wx/config.h>
|
|
||||||
#include <wx/filename.h>
|
|
||||||
#include <wx/aboutdlg.h>
|
#include <wx/aboutdlg.h>
|
||||||
#include <wx/fdrepdlg.h>
|
#include <wx/fdrepdlg.h>
|
||||||
#include <wx/aui/aui.h>
|
#include <wx/aui/aui.h>
|
||||||
|
@ -14,10 +14,15 @@
|
|||||||
#include <wx/wx.h>
|
#include <wx/wx.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Common helpers/functionality
|
||||||
|
#include <wx/debug.h>
|
||||||
|
#include <wx/cmdline.h>
|
||||||
|
#include <wx/config.h>
|
||||||
#include <wx/stdpaths.h>
|
#include <wx/stdpaths.h>
|
||||||
#include <wx/filename.h>
|
#include <wx/filename.h>
|
||||||
#include <wx/artprov.h>
|
#include <wx/artprov.h>
|
||||||
|
|
||||||
|
// Tyro-specific variables
|
||||||
#include "definitions.h"
|
#include "definitions.h"
|
||||||
|
|
||||||
#endif /* WX_COMMON_H */
|
#endif /* WX_COMMON_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user