Reduce use of globals, tweak about dialog

This commit is contained in:
Timothy Warren 2019-06-13 12:14:48 -04:00
parent b927dad749
commit e43ccaf9a3
5 changed files with 37 additions and 26 deletions

View File

@ -138,7 +138,12 @@ private:
Glob_lexer_map["properties"] = wxSTC_LEX_PROPERTIES; Glob_lexer_map["properties"] = wxSTC_LEX_PROPERTIES;
Glob_lexer_map["python"] = wxSTC_LEX_PYTHON; Glob_lexer_map["python"] = wxSTC_LEX_PYTHON;
Glob_lexer_map["ruby"] = wxSTC_LEX_RUBY; Glob_lexer_map["ruby"] = wxSTC_LEX_RUBY;
#ifdef wxSTC_LEX_RUST
Glob_lexer_map["rust"] = wxSTC_LEX_RUST;
#endif
#ifndef wxSTC_LEX_RUST
Glob_lexer_map["rust"] = wxSTC_LEX_CPP; Glob_lexer_map["rust"] = wxSTC_LEX_CPP;
#endif
Glob_lexer_map["scheme"] = wxSTC_LEX_LISP; Glob_lexer_map["scheme"] = wxSTC_LEX_LISP;
Glob_lexer_map["shell"] = wxSTC_LEX_BASH; Glob_lexer_map["shell"] = wxSTC_LEX_BASH;
Glob_lexer_map["sql"] = wxSTC_LEX_SQL; Glob_lexer_map["sql"] = wxSTC_LEX_SQL;
@ -155,8 +160,8 @@ private:
wxSystemOptions::SetOption("osx.openfiledialog.always-show-types", 1); wxSystemOptions::SetOption("osx.openfiledialog.always-show-types", 1);
#endif #endif
#ifdef __WXMSW_ #ifdef __WXMSW__
wxSystemOptions::SetOption("msw.remap", 0);_ wxSystemOptions::SetOption("msw.remap", 0);
wxSystemOptions::SetOption("msw.display.directdraw", 1); wxSystemOptions::SetOption("msw.display.directdraw", 1);
#endif #endif
} }

View File

@ -3,8 +3,6 @@
#include "src/widgets/FilePane.h" #include "src/widgets/FilePane.h"
#include "src/widgets/MainFrame.h" #include "src/widgets/MainFrame.h"
extern MainFrame *Glob_main_frame;
auto DIR_SEP = wxFileName::GetPathSeparator(); auto DIR_SEP = wxFileName::GetPathSeparator();
enum enum
@ -253,7 +251,10 @@ void FilePane::OpenFileInEditor(wxTreeListEvent& event)
wxString path_arr [1] = { path }; wxString path_arr [1] = { path };
auto files = wxArrayString(1, *path_arr); auto files = wxArrayString(1, *path_arr);
Glob_main_frame->OpenFiles(files);
// Use the parent accessor to get the main frame
auto parent = (MainFrame *)this->GetParent();
parent->OpenFiles(files);
} }
/** /**

View File

@ -12,7 +12,7 @@ static FilePane *filePane = nullptr;
extern PrefPane *Glob_pref_pane; extern PrefPane *Glob_pref_pane;
// Frame icon // Frame icon (const static char *tyro_icon[])
#include "resources/xpm/tyro.xpm" #include "resources/xpm/tyro.xpm"
/** /**
@ -48,9 +48,6 @@ MainFrame::MainFrame(wxFrame *frame, const wxString &title, const wxSize &size)
MainFrame::~MainFrame() MainFrame::~MainFrame()
{ {
wxLogDebug("Main Frame Destructor Called."); wxLogDebug("Main Frame Destructor Called.");
//delete notebook;
//delete toolBar;
//delete filePane;
wxDELETE(this->findDlg); wxDELETE(this->findDlg);
wxDELETE(this->findData); wxDELETE(this->findData);
@ -311,6 +308,7 @@ void MainFrame::OnOpenFolder(wxCommandEvent &event)
*/ */
void MainFrame::OpenFiles(wxArrayString filelist) void MainFrame::OpenFiles(wxArrayString filelist)
{ {
// @TODO skip duplicated files
int listcount = filelist.GetCount(); int listcount = filelist.GetCount();
if (listcount < 1) return; if (listcount < 1) return;
@ -447,7 +445,7 @@ void MainFrame::OnAbout(wxCommandEvent &WXUNUSED(event))
info.SetName(APP_NAME); info.SetName(APP_NAME);
info.SetVersion(APP_VERSION, APP_VERSION_MORE); info.SetVersion(APP_VERSION, APP_VERSION_MORE);
info.AddDeveloper("Tim Warren"); info.AddDeveloper("Timothy J. Warren");
info.AddArtist("Brian Smith: Main icon"); info.AddArtist("Brian Smith: Main icon");
#ifndef __WXGTK__ #ifndef __WXGTK__
@ -457,15 +455,15 @@ void MainFrame::OnAbout(wxCommandEvent &WXUNUSED(event))
wxString desc = "Tyro, a text editor for all development\n\n" wxString desc = "Tyro, a text editor for all development\n\n"
"System info: \n"; "System info: \n";
desc += wxString::Format("\tArchitecture: %s\n", desc += wxString::Format("%s\n",
wxPlatformInfo::GetArchName(plat_info.GetArchitecture())); wxPlatformInfo::GetArchName(plat_info.GetArchitecture()));
desc += wxString::Format("\tOperating System:\n\t\t%s %i.%i\n", desc += wxString::Format("%s %i.%i\n",
wxPlatformInfo::GetOperatingSystemIdName(plat_info.GetOperatingSystemId()), wxPlatformInfo::GetOperatingSystemIdName(plat_info.GetOperatingSystemId()),
plat_info.GetOSMajorVersion(), plat_info.GetOSMajorVersion(),
plat_info.GetOSMinorVersion()); plat_info.GetOSMinorVersion());
desc += wxString::Format("\nwxWidgets version: %s %i.%i.%i\n", desc += wxString::Format("%s %i.%i.%i\n",
plat_info.GetPortIdName(), plat_info.GetPortIdName(),
wxMAJOR_VERSION, wxMAJOR_VERSION,
wxMINOR_VERSION, wxMINOR_VERSION,
@ -477,10 +475,9 @@ void MainFrame::OnAbout(wxCommandEvent &WXUNUSED(event))
wxString desk = plat_info.GetDesktopEnvironment(); wxString desk = plat_info.GetDesktopEnvironment();
if (desk != "") if (desk != "")
{ {
desc += wxString::Format("\tDesktop Environment:%s\n", desk); desc += wxString::Format("%s\n", desk);
} }
desc += "\tDistro: ";
desc += dist_info.Description; desc += dist_info.Description;
if (dist_info.CodeName != "") if (dist_info.CodeName != "")
@ -489,6 +486,12 @@ void MainFrame::OnAbout(wxCommandEvent &WXUNUSED(event))
} }
#endif #endif
if ( ! info.HasIcon())
{
wxIcon appIcon = wxIcon(tyro_icon);
info.SetIcon(appIcon);
}
info.SetDescription(desc); info.SetDescription(desc);
info.SetCopyright(" (C) 2015-2019"); info.SetCopyright(" (C) 2015-2019");
@ -704,7 +707,13 @@ void MainFrame::OnLangSelect(wxCommandEvent &event)
{ {
auto *selectedMenu = (wxMenu *) event.GetEventObject(); auto *selectedMenu = (wxMenu *) event.GetEventObject();
auto *langMenu = Glob_menu_bar->GetMenu(myLANG_MENU); auto *langMenu = Glob_menu_bar->GetMenu(myLANG_MENU);
if (langMenu == nullptr) wxLogDebug("Couldn't get lang menu"); if (langMenu == nullptr)
{
wxLogDebug("Couldn't get lang menu");
// Go to the more specific event handlers
event.Skip(true);
return;
}
if (selectedMenu == langMenu) if (selectedMenu == langMenu)
{ {

View File

@ -8,11 +8,6 @@
extern TyroMenu *Glob_menu_bar; extern TyroMenu *Glob_menu_bar;
extern wxStatusBar *Glob_status_bar; extern wxStatusBar *Glob_status_bar;
static MainFrame *parentFrame = nullptr;
static vector<EditPane *> editors;
static unsigned long untitled_document_count = 0;
/** /**
* Constructor * Constructor
* *
@ -30,8 +25,6 @@ TabContainer::TabContainer(
long style long style
) : wxAuiNotebook(parent, id, pos, size, style) ) : wxAuiNotebook(parent, id, pos, size, style)
{ {
parentFrame = (MainFrame *) parent;
this->Bind(wxEVT_AUINOTEBOOK_PAGE_CLOSE, &TabContainer::OnClose, this, wxID_ANY); this->Bind(wxEVT_AUINOTEBOOK_PAGE_CLOSE, &TabContainer::OnClose, this, wxID_ANY);
this->Bind(wxEVT_AUINOTEBOOK_PAGE_CLOSED, &TabContainer::OnClosed, this, wxID_ANY); this->Bind(wxEVT_AUINOTEBOOK_PAGE_CLOSED, &TabContainer::OnClosed, this, wxID_ANY);
this->Bind(wxEVT_AUINOTEBOOK_TAB_RIGHT_DOWN, &TabContainer::OnTabContextMenu, this, wxID_ANY); this->Bind(wxEVT_AUINOTEBOOK_TAB_RIGHT_DOWN, &TabContainer::OnTabContextMenu, this, wxID_ANY);
@ -63,11 +56,11 @@ EditPane* TabContainer::NewEditor()
*/ */
void TabContainer::AddTab() void TabContainer::AddTab()
{ {
untitled_document_count++; this->untitled_document_count++;
wxString caption; wxString caption;
caption.Printf("Untitled %lu", untitled_document_count); caption.Printf("Untitled %lu", this->untitled_document_count);
this->AddPage(this->NewEditor(), caption, true); this->AddPage(this->NewEditor(), caption, true);
} }
@ -176,6 +169,7 @@ void TabContainer::OnClosed(wxAuiNotebookEvent &WXUNUSED(event))
{ {
if (this->GetPageCount() == 0) if (this->GetPageCount() == 0)
{ {
auto parentFrame = (MainFrame *)this->GetParent();
parentFrame->EnableEditControls(false); parentFrame->EnableEditControls(false);
Glob_status_bar->SetStatusText("", STATUS_CURSOR_LOCATION); Glob_status_bar->SetStatusText("", STATUS_CURSOR_LOCATION);
Glob_status_bar->SetStatusText("", STATUS_CURRENT_LANGUAGE); Glob_status_bar->SetStatusText("", STATUS_CURRENT_LANGUAGE);
@ -206,6 +200,7 @@ void TabContainer::OnTabContextMenu(wxAuiNotebookEvent &WXUNUSED(event))
void TabContainer::OnCloseAll(wxCommandEvent &WXUNUSED(event)) void TabContainer::OnCloseAll(wxCommandEvent &WXUNUSED(event))
{ {
this->DeleteAllPages(); this->DeleteAllPages();
auto parentFrame = (MainFrame *)this->GetParent();
parentFrame->EnableEditControls(false); parentFrame->EnableEditControls(false);
} }
@ -263,4 +258,4 @@ void TabContainer::OnTabSwitch(wxAuiNotebookEvent &event)
// Update status bar // Update status bar
Glob_status_bar->SetStatusText(editor->GetCurrentLang(), STATUS_CURRENT_LANGUAGE); Glob_status_bar->SetStatusText(editor->GetCurrentLang(), STATUS_CURRENT_LANGUAGE);
} }

View File

@ -28,6 +28,7 @@ public:
void OnCloseAll(wxCommandEvent &event); void OnCloseAll(wxCommandEvent &event);
void OnCloseAllButThis(wxCommandEvent &event); void OnCloseAllButThis(wxCommandEvent &event);
private: private:
unsigned long untitled_document_count = 0;
EditPane *NewEditor(); EditPane *NewEditor();
void OnTabSwitch(wxAuiNotebookEvent &event); void OnTabSwitch(wxAuiNotebookEvent &event);
void OnClose(wxAuiNotebookEvent &event); void OnClose(wxAuiNotebookEvent &event);