/*
- Copyright (C) 2014 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2014-2015 Carl Hetherington <cth@carlh.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
using std::list;
using std::string;
+using std::cout;
using boost::shared_ptr;
FontsDialog::FontsDialog (wxWindow* parent, shared_ptr<SubtitleContent> content)
ip.SetWidth (100);
_fonts->InsertColumn (0, ip);
}
-
+
{
wxListItem ip;
ip.SetId (1);
SetSizerAndFit (overall_sizer);
_set_file->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&FontsDialog::set_file_clicked, this));
+ _fonts->Bind (wxEVT_COMMAND_LIST_ITEM_SELECTED, boost::bind (&FontsDialog::selection_changed, this));
+ _fonts->Bind (wxEVT_COMMAND_LIST_ITEM_DESELECTED, boost::bind (&FontsDialog::selection_changed, this));
setup ();
+ update_sensitivity ();
}
void
if (!content) {
return;
}
-
+
_fonts->DeleteAllItems ();
list<shared_ptr<Font> > fonts = content->fonts ();
size_t n = 0;
wxListItem item;
item.SetId (n);
_fonts->InsertItem (item);
- _fonts->SetItem (n, 0, (*i)->id.get_value_or (wx_to_std (_("[Default]"))));
- if ((*i)->file) {
- _fonts->SetItem (n, 1, (*i)->file.get().leaf().string ());
+ _fonts->SetItem (n, 0, std_to_wx ((*i)->id ()));
+ if ((*i)->file ()) {
+ _fonts->SetItem (n, 1, (*i)->file().get().leaf().string ());
}
++n;
}
if (item == -1) {
return;
}
-
+
/* The wxFD_CHANGE_DIR here prevents a `could not set working directory' error 123 on Windows when using
non-Latin filenames or paths.
*/
list<shared_ptr<Font> > fonts = content->fonts ();
for (list<shared_ptr<Font> >::iterator i = fonts.begin(); i != fonts.end(); ++i) {
- if ((*i)->id == id) {
- (*i)->file = wx_to_std (d->GetPath ());
+ if ((*i)->id() == id) {
+ (*i)->set_file (wx_to_std (d->GetPath ()));
}
}
setup ();
}
+
+void
+FontsDialog::selection_changed ()
+{
+ update_sensitivity ();
+}
+
+void
+FontsDialog::update_sensitivity ()
+{
+ int const item = _fonts->GetNextItem (-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
+ _set_file->Enable (item != -1);
+}