Attempt to have a default font specified from the system

This commit is contained in:
Timothy Warren 2019-05-31 14:17:30 -04:00
parent e6e40cdaba
commit ee64ae24c4
7 changed files with 45 additions and 51 deletions

View File

@ -22,10 +22,6 @@ StringConstMap Glob_lexer_map;
PrefPane *Glob_pref_pane = nullptr; PrefPane *Glob_pref_pane = nullptr;
#endif #endif
// Static app loading variables
static wxArrayString files;
static int param_count;
/** /**
* Class with main method * Class with main method
*/ */
@ -58,7 +54,7 @@ public:
Glob_main_frame->Show(true); Glob_main_frame->Show(true);
// Open passed files // Open passed files
if (param_count > 0) if (this->param_count > 0)
{ {
Glob_main_frame->OpenFiles(files); Glob_main_frame->OpenFiles(files);
} }
@ -105,18 +101,22 @@ public:
{ {
// Get un-named parameters // Get un-named parameters
int i; int i;
param_count = parser.GetParamCount(); this->param_count = parser.GetParamCount();
wxLogDebug("%i Parameters", param_count); wxLogDebug("%i Parameters", this->param_count);
for (i = 0; i < param_count; i++) for (i = 0; i < this->param_count; i++)
{ {
files.Add(parser.GetParam(i)); this->files.Add(parser.GetParam(i));
} }
return true; return true;
} }
private: private:
// app loading variables
wxArrayString files;
int param_count = 0;
/** /**
* Set up mapping for lexers * Set up mapping for lexers
*/ */

View File

@ -25,7 +25,7 @@ ThemeConfig::~ThemeConfig() {}
* @param string theme_name * @param string theme_name
* @return bool * @return bool
*/ */
bool ThemeConfig::SetTheme(string theme_name) bool ThemeConfig::SetTheme(const string &theme_name)
{ {
JsonValue theme_list = this->GetRoot(); JsonValue theme_list = this->GetRoot();
JsonValue selected_theme = theme_list.get(theme_name, JsonValue()); JsonValue selected_theme = theme_list.get(theme_name, JsonValue());
@ -89,4 +89,4 @@ wxColor ThemeConfig::GetThemeColor(string type, string key)
{ {
return wxColor("BLACK"); return wxColor("BLACK");
} }
} }

View File

@ -10,7 +10,7 @@ class ThemeConfig : TyroConfig {
public: public:
ThemeConfig(); ThemeConfig();
~ThemeConfig(); ~ThemeConfig();
bool SetTheme(string theme_name); bool SetTheme(const string &theme_name);
JsonValue GetTheme(); JsonValue GetTheme();
JsonValue GetThemeValue(string type, string key); JsonValue GetThemeValue(string type, string key);
wxColor GetThemeColor(string type, string key); wxColor GetThemeColor(string type, string key);

View File

@ -306,13 +306,8 @@ void EditPane::OnCharAdded(wxStyledTextEvent& event)
*/ */
void EditPane::_ApplyTheme(JsonValue &lexer_map) void EditPane::_ApplyTheme(JsonValue &lexer_map)
{ {
// Font setup // Make sure to have a default font, especially for Linux
wxFont defaultFont( wxFont globalFont = wxSystemSettings::GetFont(wxSYS_ANSI_FIXED_FONT);
TYRO_DEFAULT_FONT_SIZE,
wxFONTFAMILY_TELETYPE,
wxFONTFLAG_DEFAULT,
wxFONTWEIGHT_NORMAL
);
static const wxColor default_background = this->theme_config->GetThemeColor("background", "default"); static const wxColor default_background = this->theme_config->GetThemeColor("background", "default");
static const wxColor default_foreground = this->theme_config->GetThemeColor("foreground", "default"); static const wxColor default_foreground = this->theme_config->GetThemeColor("foreground", "default");
@ -324,22 +319,16 @@ void EditPane::_ApplyTheme(JsonValue &lexer_map)
? (this->theme_config->GetThemeColor("line_numbers", "foreground")) ? (this->theme_config->GetThemeColor("line_numbers", "foreground"))
: default_foreground; : default_foreground;
// Attempt to set the font according to config
Glob_config->Read("global_font", &globalFont);
// Set default colors/ fonts // Set default colors/ fonts
for(int i = 0; i <= wxSTC_STYLE_MAX; i++) for(int i = 0; i <= wxSTC_STYLE_MAX; i++)
{ {
this->StyleSetBackground(i, default_background); this->StyleSetBackground(i, default_background);
this->StyleSetForeground(i, default_foreground); this->StyleSetForeground(i, default_foreground);
wxFont globalFont; this->StyleSetFont(i, globalFont);
wxString fontFace;
if ( ! Glob_config->Read("global_font", &globalFont))
{
this->StyleSetFont(i, defaultFont);
}
else
{
this->StyleSetFont(i, globalFont);
}
} }
// Set up Code folding // Set up Code folding

View File

@ -103,10 +103,10 @@ void FilePane::CreateTree(const wxString &path)
this->AddDirToTree(root, dirs[0], wxString(""), true); this->AddDirToTree(root, dirs[0], wxString(""), true);
} }
delete files;
// Add files that are in the root path // Add files that are in the root path
this->AddDirFiles(root, this->base_path); this->AddDirFiles(root, this->base_path, files);
delete files;
} }
/** /**
@ -199,20 +199,24 @@ void FilePane::AddDirToTree(wxTreeListItem &root, const wxString &path, const wx
this->AddDirToTree(dir_node, dirs[0], newParent, true); this->AddDirToTree(dir_node, dirs[0], newParent, true);
} }
delete files;
// Add the files, if they exist // Add the files, if they exist
// Defer until after recursion so that files follow folders // Defer until after recursion so that files follow folders
this->AddDirFiles(dir_node, fullPath); this->AddDirFiles(dir_node, fullPath, files);
delete files;
} }
void FilePane::AddDirFiles(wxTreeListItem &root, const wxString &path) /**
* Add the file leaves for the current file path in the tree
*
* @param wxTreeListITem &root - The branch of the tree representing the current path
* @param wxString &path - The filesystem path
* @param wxArrayString *files - The list of files
*/
void FilePane::AddDirFiles(wxTreeListItem &root, const wxString &path, wxArrayString *files)
{ {
wxLogInfo("Adding files for dir: %s", path); wxLogInfo("Adding files for dir: %s", path);
auto *files = new wxArrayString();
wxDir::GetAllFiles(path, files, wxEmptyString, wxDIR_FILES);
wxFileName rootPath(path); wxFileName rootPath(path);
rootPath.MakeAbsolute(); rootPath.MakeAbsolute();
@ -235,8 +239,6 @@ void FilePane::AddDirFiles(wxTreeListItem &root, const wxString &path)
this->AppendItem(root, fileLabel, Icon_File, Icon_File, fileData); this->AppendItem(root, fileLabel, Icon_File, Icon_File, fileData);
this->file_set.insert(std::string(fileName.GetFullPath())); this->file_set.insert(std::string(fileName.GetFullPath()));
} }
delete files;
} }
/** /**

View File

@ -25,6 +25,6 @@ private:
void OpenFileInEditor(wxTreeListEvent& event); void OpenFileInEditor(wxTreeListEvent& event);
void InitImageList(); void InitImageList();
void AddDirToTree(wxTreeListItem &root, const wxString &path, const wxString &parent, bool recurse = false); void AddDirToTree(wxTreeListItem &root, const wxString &path, const wxString &parent, bool recurse = false);
void AddDirFiles(wxTreeListItem &root, const wxString &path); void AddDirFiles(wxTreeListItem &root, const wxString &path, wxArrayString *files);
}; };

View File

@ -101,13 +101,16 @@ public:
wxSizer *sizer = new wxBoxSizer(wxVERTICAL); wxSizer *sizer = new wxBoxSizer(wxVERTICAL);
wxFont globalFont = wxSystemSettings::GetFont(wxSYS_ANSI_FIXED_FONT);
Glob_config->Read("global_font", &globalFont);
this->fontPicker = new wxFontPickerCtrl( this->fontPicker = new wxFontPickerCtrl(
this, this,
myID_PREFS_FONT, myID_PREFS_FONT,
this->GetFont(), globalFont,
wxDefaultPosition, wxDefaultPosition,
wxDefaultSize, wxDefaultSize,
wxFNTP_FONTDESC_AS_LABEL wxFNTP_FONTDESC_AS_LABEL
); );
this->fontPicker->SetLabelText("Editor Font"); this->fontPicker->SetLabelText("Editor Font");
wxSizer *fontSizer = new wxBoxSizer(wxHORIZONTAL); wxSizer *fontSizer = new wxBoxSizer(wxHORIZONTAL);
@ -142,7 +145,7 @@ public:
*/ */
virtual bool TransferDataToWindow() virtual bool TransferDataToWindow()
{ {
wxFont globalFont; wxFont globalFont = wxSystemSettings::GetFont(wxSYS_ANSI_FIXED_FONT);
Glob_config->Read("global_font", &globalFont); Glob_config->Read("global_font", &globalFont);
this->fontPicker->SetSelectedFont(globalFont); this->fontPicker->SetSelectedFont(globalFont);
@ -202,7 +205,7 @@ PrefPane::PrefPane()
{ {
this->pref_window = new wxPreferencesEditor(); this->pref_window = new wxPreferencesEditor();
this->pref_window->AddPage(new GeneralPrefPane()); this->pref_window->AddPage(new GeneralPrefPane());
// this->pref_window->AddPage(new FontPrefPane()); this->pref_window->AddPage(new FontPrefPane());
} }
PrefPane::~PrefPane() PrefPane::~PrefPane()