From: Carl Hetherington Date: Wed, 25 Jul 2012 21:27:25 +0000 (+0100) Subject: Basic config dialogue. X-Git-Tag: v2.0.48~1858 X-Git-Url: https://git.carlh.net/gitweb/?a=commitdiff_plain;ds=sidebyside;h=539941e7db8deba31898eb81af94009a3944e9f0;p=dcpomatic.git Basic config dialogue. --- diff --git a/src/tools/dvdomatic.cc b/src/tools/dvdomatic.cc index db84999eb..b6929a033 100644 --- a/src/tools/dvdomatic.cc +++ b/src/tools/dvdomatic.cc @@ -26,7 +26,7 @@ #include "wx/film_player.h" #endif #include "wx/job_manager_view.h" -//#include "gtk/config_dialog.h" +#include "wx/config_dialog.h" #include "wx/job_wrapper.h" //#include "gtk/dvd_title_dialog.h" #include "wx/wx_util.h" @@ -76,6 +76,7 @@ private: wxMessageDialog* _dialog; }; + void maybe_save_then_delete_film () { @@ -98,8 +99,6 @@ maybe_save_then_delete_film () film = 0; } - - enum Sensitivity { ALWAYS, NEEDS_FILM @@ -249,9 +248,10 @@ public: void edit_preferences (wxCommandEvent &) { -// ConfigDialog d; -// d.run (); -// Config::instance()->write (); + ConfigDialog* d = new ConfigDialog (this); + d->ShowModal (); + d->Destroy (); + Config::instance()->write (); } void jobs_make_dcp (wxCommandEvent &) diff --git a/src/wx/config_dialog.cc b/src/wx/config_dialog.cc index 03f5b99a0..089903fba 100644 --- a/src/wx/config_dialog.cc +++ b/src/wx/config_dialog.cc @@ -30,334 +30,246 @@ #include "lib/scaler.h" #include "lib/filter.h" #include "config_dialog.h" -#include "gtk_util.h" -#include "filter_dialog.h" +#include "wx_util.h" +//#include "filter_dialog.h" using namespace std; using namespace boost; -ConfigDialog::ConfigDialog () - : Gtk::Dialog ("DVD-o-matic Configuration") - , _reference_filters_button ("Edit...") - , _add_server ("Add Server") - , _remove_server ("Remove Server") - , _add_screen ("Add Screen") - , _remove_screen ("Remove Screen") +ConfigDialog::ConfigDialog (wxWindow* parent) + : wxDialog (parent, wxID_ANY, _("DVD-o-matic Configuration"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) { - Gtk::Table* t = manage (new Gtk::Table); - t->set_row_spacings (6); - t->set_col_spacings (6); - t->set_border_width (6); + wxFlexGridSizer* table = new wxFlexGridSizer (3, 6, 6); + table->AddGrowableCol (1, 1); + + add_label_to_sizer (table, this, "TMS IP address"); + _tms_ip = new wxTextCtrl (this, wxID_ANY); + table->Add (_tms_ip, 1, wxEXPAND); + table->AddSpacer (0); + + add_label_to_sizer (table, this, "TMS target path"); + _tms_path = new wxTextCtrl (this, wxID_ANY); + table->Add (_tms_path, 1, wxEXPAND); + table->AddSpacer (0); + + add_label_to_sizer (table, this, "TMS user name"); + _tms_user = new wxTextCtrl (this, wxID_ANY); + table->Add (_tms_user, 1, wxEXPAND); + table->AddSpacer (0); + + add_label_to_sizer (table, this, "TMS password"); + _tms_password = new wxTextCtrl (this, wxID_ANY); + table->Add (_tms_password, 1, wxEXPAND); + table->AddSpacer (0); + + add_label_to_sizer (table, this, "Threads to use for encoding on this host"); + _num_local_encoding_threads = new wxSpinCtrl (this); + table->Add (_num_local_encoding_threads, 1, wxEXPAND); + table->AddSpacer (0); + + add_label_to_sizer (table, this, "Colour look-up table"); + _colour_lut = new wxComboBox (this, wxID_ANY); + _colour_lut->Append (wxT ("sRGB")); + _colour_lut->Append (wxT ("Rec 709")); + _colour_lut->SetSelection (0); + table->Add (_colour_lut, 1, wxEXPAND); + table->AddSpacer (0); + + add_label_to_sizer (table, this, "JPEG2000 bandwidth"); + _j2k_bandwidth = new wxSpinCtrl (this, wxID_ANY); + table->Add (_j2k_bandwidth, 1, wxEXPAND); + add_label_to_sizer (table, this, "MBps"); + + add_label_to_sizer (table, this, "Reference scaler for A/B"); + _reference_scaler = new wxComboBox (this, wxID_ANY); + vector const sc = Scaler::all (); + for (vector::const_iterator i = sc.begin(); i != sc.end(); ++i) { + _reference_scaler->Append (std_to_wx ((*i)->name ())); + } + table->Add (_reference_scaler, 1, wxEXPAND); + table->AddSpacer (0); + + { + add_label_to_sizer (table, this, "Reference filters for A/B"); + wxPanel* p = new wxPanel (this); + wxSizer* s = new wxBoxSizer (wxHORIZONTAL); + _reference_filters = new wxStaticText (p, wxID_ANY, wxT ("")); + s->Add (_reference_filters, 1, wxEXPAND); + _reference_filters_button = new wxButton (p, wxID_ANY, _("Edit...")); + s->Add (_reference_filters_button, 0); + table->Add (p, 1, wxEXPAND); + table->AddSpacer (0); + } + + add_label_to_sizer (table, this, "Encoding Servers"); + _servers = new wxListCtrl (this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT | wxLC_SINGLE_SEL); + wxListItem ip; + ip.SetId (0); + ip.SetText (_("IP address")); + ip.SetWidth (100); + _servers->InsertColumn (0, ip); + ip.SetId (1); + ip.SetText (_("Threads")); + ip.SetWidth (90); + _servers->InsertColumn (1, ip); + table->Add (_servers, 1, wxEXPAND); + + { + wxPanel* p = new wxPanel (this); + wxSizer* s = new wxBoxSizer (wxVERTICAL); + p->SetSizer (s); + _add_server = new wxButton (p, wxID_ANY, _("Add")); + s->Add (_add_server); + _remove_server = new wxButton (p, wxID_ANY, _("Remove")); + s->Add (_remove_server); + table->Add (p, 0); + } + Config* config = Config::instance (); - _tms_ip.set_text (config->tms_ip ()); - _tms_ip.signal_changed().connect (sigc::mem_fun (*this, &ConfigDialog::tms_ip_changed)); - _tms_path.set_text (config->tms_path ()); - _tms_path.signal_changed().connect (sigc::mem_fun (*this, &ConfigDialog::tms_path_changed)); - _tms_user.set_text (config->tms_user ()); - _tms_user.signal_changed().connect (sigc::mem_fun (*this, &ConfigDialog::tms_user_changed)); - _tms_password.set_text (config->tms_password ()); - _tms_password.signal_changed().connect (sigc::mem_fun (*this, &ConfigDialog::tms_password_changed)); - - _num_local_encoding_threads.set_range (1, 128); - _num_local_encoding_threads.set_increments (1, 4); - _num_local_encoding_threads.set_value (config->num_local_encoding_threads ()); - _num_local_encoding_threads.signal_changed().connect (sigc::mem_fun (*this, &ConfigDialog::num_local_encoding_threads_changed)); - - _colour_lut.append_text ("sRGB"); - _colour_lut.append_text ("Rec 709"); - _colour_lut.set_active (config->colour_lut_index ()); - _colour_lut.signal_changed().connect (sigc::mem_fun (*this, &ConfigDialog::colour_lut_changed)); + _tms_ip->SetValue (std_to_wx (config->tms_ip ())); + _tms_ip->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (ConfigDialog::tms_ip_changed), 0, this); + _tms_path->SetValue (std_to_wx (config->tms_path ())); + _tms_path->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (ConfigDialog::tms_path_changed), 0, this); + _tms_user->SetValue (std_to_wx (config->tms_user ())); + _tms_user->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (ConfigDialog::tms_user_changed), 0, this); + _tms_password->SetValue (std_to_wx (config->tms_password ())); + _tms_password->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (ConfigDialog::tms_password_changed), 0, this); + + _num_local_encoding_threads->SetRange (1, 128); + _num_local_encoding_threads->SetValue (config->num_local_encoding_threads ()); + _num_local_encoding_threads->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (ConfigDialog::num_local_encoding_threads_changed), 0, this); + + _colour_lut->Connect (wxID_ANY, wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler (ConfigDialog::colour_lut_changed), 0, this); - _j2k_bandwidth.set_range (50, 250); - _j2k_bandwidth.set_increments (10, 50); - _j2k_bandwidth.set_value (config->j2k_bandwidth() / 1e6); - _j2k_bandwidth.signal_changed().connect (sigc::mem_fun (*this, &ConfigDialog::j2k_bandwidth_changed)); + _j2k_bandwidth->SetRange (50, 250); + _j2k_bandwidth->SetValue (config->j2k_bandwidth() / 1e6); + _j2k_bandwidth->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (ConfigDialog::j2k_bandwidth_changed), 0, this); - vector const sc = Scaler::all (); - for (vector::const_iterator i = sc.begin(); i != sc.end(); ++i) { - _reference_scaler.append_text ((*i)->name ()); - } - _reference_scaler.set_active (Scaler::as_index (config->reference_scaler ())); - _reference_scaler.signal_changed().connect (sigc::mem_fun (*this, &ConfigDialog::reference_scaler_changed)); + _reference_scaler->SetSelection (Scaler::as_index (config->reference_scaler ())); + _reference_scaler->Connect (wxID_ANY, wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler (ConfigDialog::reference_scaler_changed), 0, this); - _reference_filters.set_alignment (0, 0.5); pair p = Filter::ffmpeg_strings (config->reference_filters ()); - _reference_filters.set_text (p.first + " " + p.second); - _reference_filters_button.signal_clicked().connect (sigc::mem_fun (*this, &ConfigDialog::edit_reference_filters_clicked)); + _reference_filters->SetLabel (std_to_wx (p.first + " " + p.second)); + _reference_filters_button->Connect (wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (ConfigDialog::edit_reference_filters_clicked), 0, this); - _servers_store = Gtk::ListStore::create (_servers_columns); vector servers = config->servers (); for (vector::iterator i = servers.begin(); i != servers.end(); ++i) { - add_server_to_store (*i); + add_server_to_control (*i); } - _servers_view.set_model (_servers_store); - _servers_view.append_column_editable ("Host Name", _servers_columns._host_name); - _servers_view.append_column_editable ("Threads", _servers_columns._threads); + _add_server->Connect (wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (ConfigDialog::add_server_clicked), 0, this); + _remove_server->Connect (wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (ConfigDialog::remove_server_clicked), 0, this); - _add_server.signal_clicked().connect (sigc::mem_fun (*this, &ConfigDialog::add_server_clicked)); - _remove_server.signal_clicked().connect (sigc::mem_fun (*this, &ConfigDialog::remove_server_clicked)); + _servers->Connect (wxID_ANY, wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler (ConfigDialog::server_selection_changed)); + wxListEvent ev; + server_selection_changed (ev); - _servers_view.get_selection()->signal_changed().connect (sigc::mem_fun (*this, &ConfigDialog::server_selection_changed)); - server_selection_changed (); - - _screens_store = Gtk::TreeStore::create (_screens_columns); - vector > screens = config->screens (); - for (vector >::iterator i = screens.begin(); i != screens.end(); ++i) { - add_screen_to_store (*i); + wxBoxSizer* overall_sizer = new wxBoxSizer (wxVERTICAL); + overall_sizer->Add (table, 1, wxEXPAND); + + wxSizer* buttons = CreateSeparatedButtonSizer (wxOK); + if (buttons) { + overall_sizer->Add (buttons, wxSizerFlags().Expand().DoubleBorder()); } - _screens_view.set_model (_screens_store); - _screens_view.append_column_editable ("Screen", _screens_columns._name); - _screens_view.append_column ("Format", _screens_columns._format_name); - _screens_view.append_column_editable ("x", _screens_columns._x); - _screens_view.append_column_editable ("y", _screens_columns._y); - _screens_view.append_column_editable ("Width", _screens_columns._width); - _screens_view.append_column_editable ("Height", _screens_columns._height); - - _add_screen.signal_clicked().connect (sigc::mem_fun (*this, &ConfigDialog::add_screen_clicked)); - _remove_screen.signal_clicked().connect (sigc::mem_fun (*this, &ConfigDialog::remove_screen_clicked)); - - _screens_view.get_selection()->signal_changed().connect (sigc::mem_fun (*this, &ConfigDialog::screen_selection_changed)); - screen_selection_changed (); - - int n = 0; - t->attach (left_aligned_label ("TMS IP address"), 0, 1, n, n + 1); - t->attach (_tms_ip, 1, 2, n, n + 1); - ++n; - t->attach (left_aligned_label ("TMS target path"), 0, 1, n, n + 1); - t->attach (_tms_path, 1, 2, n, n + 1); - ++n; - t->attach (left_aligned_label ("TMS user name"), 0, 1, n, n + 1); - t->attach (_tms_user, 1, 2, n, n + 1); - ++n; - t->attach (left_aligned_label ("TMS password"), 0, 1, n, n + 1); - t->attach (_tms_password, 1, 2, n, n + 1); - ++n; - t->attach (left_aligned_label ("Threads to use for encoding on this host"), 0, 1, n, n + 1); - t->attach (_num_local_encoding_threads, 1, 2, n, n + 1); - ++n; - t->attach (left_aligned_label ("Colour look-up table"), 0, 1, n, n + 1); - t->attach (_colour_lut, 1, 2, n, n + 1); - ++n; - t->attach (left_aligned_label ("JPEG2000 bandwidth"), 0, 1, n, n + 1); - t->attach (_j2k_bandwidth, 1, 2, n, n + 1); - t->attach (left_aligned_label ("MBps"), 2, 3, n, n + 1); - ++n; - t->attach (left_aligned_label ("Reference scaler for A/B"), 0, 1, n, n + 1); - t->attach (_reference_scaler, 1, 2, n, n + 1); - ++n; - t->attach (left_aligned_label ("Reference filters for A/B"), 0, 1, n, n + 1); - Gtk::HBox* fb = Gtk::manage (new Gtk::HBox); - fb->set_spacing (4); - fb->pack_start (_reference_filters, true, true); - fb->pack_start (_reference_filters_button, false, false); - t->attach (*fb, 1, 2, n, n + 1); - ++n; - t->attach (left_aligned_label ("Encoding Servers"), 0, 1, n, n + 1); - t->attach (_servers_view, 1, 2, n, n + 1); - Gtk::VBox* b = manage (new Gtk::VBox); - b->pack_start (_add_server, false, false); - b->pack_start (_remove_server, false, false); - t->attach (*b, 2, 3, n, n + 1); - ++n; - t->attach (left_aligned_label ("Screens"), 0, 1, n, n + 1); - t->attach (_screens_view, 1, 2, n, n + 1); - b = manage (new Gtk::VBox); - b->pack_start (_add_screen, false, false); - b->pack_start (_remove_screen, false, false); - t->attach (*b, 2, 3, n, n + 1); - ++n; - - t->show_all (); - get_vbox()->pack_start (*t); - - get_vbox()->set_border_width (24); - - add_button ("Close", Gtk::RESPONSE_CLOSE); + SetSizer (overall_sizer); + overall_sizer->Layout (); + overall_sizer->SetSizeHints (this); } void -ConfigDialog::tms_ip_changed () +ConfigDialog::tms_ip_changed (wxCommandEvent &) { - Config::instance()->set_tms_ip (_tms_ip.get_text ()); + Config::instance()->set_tms_ip (wx_to_std (_tms_ip->GetValue ())); } void -ConfigDialog::tms_path_changed () +ConfigDialog::tms_path_changed (wxCommandEvent &) { - Config::instance()->set_tms_path (_tms_path.get_text ()); + Config::instance()->set_tms_path (wx_to_std (_tms_path->GetValue ())); } void -ConfigDialog::tms_user_changed () +ConfigDialog::tms_user_changed (wxCommandEvent &) { - Config::instance()->set_tms_user (_tms_user.get_text ()); + Config::instance()->set_tms_user (wx_to_std (_tms_user->GetValue ())); } void -ConfigDialog::tms_password_changed () +ConfigDialog::tms_password_changed (wxCommandEvent &) { - Config::instance()->set_tms_password (_tms_password.get_text ()); + Config::instance()->set_tms_password (wx_to_std (_tms_password->GetValue ())); } void -ConfigDialog::num_local_encoding_threads_changed () -{ - Config::instance()->set_num_local_encoding_threads (_num_local_encoding_threads.get_value ()); -} - -void -ConfigDialog::colour_lut_changed () +ConfigDialog::num_local_encoding_threads_changed (wxCommandEvent &) { - Config::instance()->set_colour_lut_index (_colour_lut.get_active_row_number ()); + Config::instance()->set_num_local_encoding_threads (_num_local_encoding_threads->GetValue ()); } void -ConfigDialog::j2k_bandwidth_changed () +ConfigDialog::colour_lut_changed (wxCommandEvent &) { - Config::instance()->set_j2k_bandwidth (_j2k_bandwidth.get_value() * 1e6); + Config::instance()->set_colour_lut_index (_colour_lut->GetSelection ()); } void -ConfigDialog::on_response (int r) +ConfigDialog::j2k_bandwidth_changed (wxCommandEvent &) { - vector servers; - - Gtk::TreeModel::Children c = _servers_store->children (); - for (Gtk::TreeModel::Children::iterator i = c.begin(); i != c.end(); ++i) { - Gtk::TreeModel::Row r = *i; - Server* s = new Server (r[_servers_columns._host_name], r[_servers_columns._threads]); - servers.push_back (s); - } - - Config::instance()->set_servers (servers); - - vector > screens; - - c = _screens_store->children (); - for (Gtk::TreeModel::Children::iterator i = c.begin(); i != c.end(); ++i) { - - Gtk::TreeModel::Row r = *i; - shared_ptr s (new Screen (r[_screens_columns._name])); - - Gtk::TreeModel::Children cc = r.children (); - for (Gtk::TreeModel::Children::iterator j = cc.begin(); j != cc.end(); ++j) { - Gtk::TreeModel::Row r = *j; - string const x_ = r[_screens_columns._x]; - string const y_ = r[_screens_columns._y]; - string const width_ = r[_screens_columns._width]; - string const height_ = r[_screens_columns._height]; - s->set_geometry ( - Format::from_nickname (r[_screens_columns._format_nickname]), - Position (lexical_cast (x_), lexical_cast (y_)), - Size (lexical_cast (width_), lexical_cast (height_)) - ); - } - - screens.push_back (s); - } - - Config::instance()->set_screens (screens); - - Gtk::Dialog::on_response (r); + Config::instance()->set_j2k_bandwidth (_j2k_bandwidth->GetValue() * 1e6); } void -ConfigDialog::add_server_to_store (Server* s) +ConfigDialog::add_server_to_control (Server* s) { - Gtk::TreeModel::iterator i = _servers_store->append (); - Gtk::TreeModel::Row r = *i; - r[_servers_columns._host_name] = s->host_name (); - r[_servers_columns._threads] = s->threads (); + wxListItem item; + int const n = _servers->GetItemCount (); + item.SetId (n); + _servers->InsertItem (item); + _servers->SetItem (n, 0, std_to_wx (s->host_name ())); + _servers->SetItem (n, 1, std_to_wx (boost::lexical_cast (s->threads ()))); } void -ConfigDialog::add_server_clicked () +ConfigDialog::add_server_clicked (wxCommandEvent &) { Server s ("localhost", 1); - add_server_to_store (&s); -} - -void -ConfigDialog::remove_server_clicked () -{ - Gtk::TreeModel::iterator i = _servers_view.get_selection()->get_selected (); - if (i) { - _servers_store->erase (i); - } -} - -void -ConfigDialog::server_selection_changed () -{ - Gtk::TreeModel::iterator i = _servers_view.get_selection()->get_selected (); - _remove_server.set_sensitive (i); -} - - -void -ConfigDialog::add_screen_to_store (shared_ptr s) -{ - Gtk::TreeModel::iterator i = _screens_store->append (); - Gtk::TreeModel::Row r = *i; - r[_screens_columns._name] = s->name (); - - Screen::GeometryMap geoms = s->geometries (); - for (Screen::GeometryMap::const_iterator j = geoms.begin(); j != geoms.end(); ++j) { - i = _screens_store->append (r.children ()); - Gtk::TreeModel::Row c = *i; - c[_screens_columns._format_name] = j->first->name (); - c[_screens_columns._format_nickname] = j->first->nickname (); - c[_screens_columns._x] = lexical_cast (j->second.position.x); - c[_screens_columns._y] = lexical_cast (j->second.position.y); - c[_screens_columns._width] = lexical_cast (j->second.size.width); - c[_screens_columns._height] = lexical_cast (j->second.size.height); - } -} - -void -ConfigDialog::add_screen_clicked () -{ - shared_ptr s (new Screen ("New Screen")); - add_screen_to_store (s); + add_server_to_control (&s); } void -ConfigDialog::remove_screen_clicked () +ConfigDialog::remove_server_clicked (wxCommandEvent &) { - Gtk::TreeModel::iterator i = _screens_view.get_selection()->get_selected (); - if (i) { - _screens_store->erase (i); + int i = _servers->GetNextItem (-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); + if (i >= 0) { + _servers->DeleteItem (i); } } void -ConfigDialog::screen_selection_changed () +ConfigDialog::server_selection_changed (wxListEvent& ev) { - Gtk::TreeModel::iterator i = _screens_view.get_selection()->get_selected (); - _remove_screen.set_sensitive (i); +// _remove_server->Enable (ev.GetIndex() >= 0); } - void -ConfigDialog::reference_scaler_changed () +ConfigDialog::reference_scaler_changed (wxCommandEvent &) { - int const n = _reference_scaler.get_active_row_number (); + int const n = _reference_scaler->GetSelection (); if (n >= 0) { Config::instance()->set_reference_scaler (Scaler::from_index (n)); } } void -ConfigDialog::edit_reference_filters_clicked () +ConfigDialog::edit_reference_filters_clicked (wxCommandEvent &) { - FilterDialog d (Config::instance()->reference_filters ()); - d.ActiveChanged.connect (sigc::mem_fun (*this, &ConfigDialog::reference_filters_changed)); - d.run (); +// FilterDialog d (Config::instance()->reference_filters ()); +// d.ActiveChanged.connect (sigc::mem_fun (*this, &ConfigDialog::reference_filters_changed)); +// d.run (); } void @@ -365,5 +277,5 @@ ConfigDialog::reference_filters_changed (vector f) { Config::instance()->set_reference_filters (f); pair p = Filter::ffmpeg_strings (Config::instance()->reference_filters ()); - _reference_filters.set_text (p.first + " " + p.second); + _reference_filters->SetLabel (std_to_wx (p.first + " " + p.second)); } diff --git a/src/wx/config_dialog.h b/src/wx/config_dialog.h index ec345750a..e05941f99 100644 --- a/src/wx/config_dialog.h +++ b/src/wx/config_dialog.h @@ -21,7 +21,8 @@ * @brief A dialogue to edit DVD-o-matic configuration. */ -#include +#include +#include class Screen; class Server; @@ -29,85 +30,40 @@ class Server; /** @class ConfigDialog * @brief A dialogue to edit DVD-o-matic configuration. */ -class ConfigDialog : public Gtk::Dialog +class ConfigDialog : public wxDialog { public: - ConfigDialog (); + ConfigDialog (wxWindow *); private: - void on_response (int); - - void tms_ip_changed (); - void tms_path_changed (); - void tms_user_changed (); - void tms_password_changed (); - void num_local_encoding_threads_changed (); - void colour_lut_changed (); - void j2k_bandwidth_changed (); - void add_server_clicked (); - void remove_server_clicked (); - void server_selection_changed (); - void add_screen_clicked (); - void remove_screen_clicked (); - void screen_selection_changed (); - void reference_scaler_changed (); - void edit_reference_filters_clicked (); + void tms_ip_changed (wxCommandEvent &); + void tms_path_changed (wxCommandEvent &); + void tms_user_changed (wxCommandEvent &); + void tms_password_changed (wxCommandEvent &); + void num_local_encoding_threads_changed (wxCommandEvent &); + void colour_lut_changed (wxCommandEvent &); + void j2k_bandwidth_changed (wxCommandEvent &); + void reference_scaler_changed (wxCommandEvent &); + void edit_reference_filters_clicked (wxCommandEvent &); void reference_filters_changed (std::vector); - - void add_screen_to_store (boost::shared_ptr); - void add_server_to_store (Server *); - - struct ServersModelColumns : public Gtk::TreeModelColumnRecord - { - ServersModelColumns () { - add (_host_name); - add (_threads); - } - - Gtk::TreeModelColumn _host_name; - Gtk::TreeModelColumn _threads; - }; - - struct ScreensModelColumns : public Gtk::TreeModelColumnRecord - { - ScreensModelColumns () { - add (_name); - add (_format_name); - add (_format_nickname); - add (_x); - add (_y); - add (_width); - add (_height); - } - - Gtk::TreeModelColumn _name; - Gtk::TreeModelColumn _format_name; - Gtk::TreeModelColumn _format_nickname; - Gtk::TreeModelColumn _x; - Gtk::TreeModelColumn _y; - Gtk::TreeModelColumn _width; - Gtk::TreeModelColumn _height; - }; - - Gtk::Entry _tms_ip; - Gtk::Entry _tms_path; - Gtk::Entry _tms_user; - Gtk::Entry _tms_password; - Gtk::SpinButton _num_local_encoding_threads; - Gtk::ComboBoxText _colour_lut; - Gtk::SpinButton _j2k_bandwidth; - Gtk::ComboBoxText _reference_scaler; - Gtk::Label _reference_filters; - Gtk::Button _reference_filters_button; - ServersModelColumns _servers_columns; - Glib::RefPtr _servers_store; - Gtk::TreeView _servers_view; - Gtk::Button _add_server; - Gtk::Button _remove_server; - ScreensModelColumns _screens_columns; - Glib::RefPtr _screens_store; - Gtk::TreeView _screens_view; - Gtk::Button _add_screen; - Gtk::Button _remove_screen; + void add_server_clicked (wxCommandEvent &); + void remove_server_clicked (wxCommandEvent &); + void server_selection_changed (wxListEvent &); + + void add_server_to_control (Server *); + + wxTextCtrl* _tms_ip; + wxTextCtrl* _tms_path; + wxTextCtrl* _tms_user; + wxTextCtrl* _tms_password; + wxSpinCtrl* _num_local_encoding_threads; + wxComboBox* _colour_lut; + wxSpinCtrl* _j2k_bandwidth; + wxComboBox* _reference_scaler; + wxStaticText* _reference_filters; + wxButton* _reference_filters_button; + wxListCtrl* _servers; + wxButton* _add_server; + wxButton* _remove_server; }; diff --git a/src/wx/wscript b/src/wx/wscript index c9d880501..e7e988c60 100644 --- a/src/wx/wscript +++ b/src/wx/wscript @@ -14,10 +14,10 @@ def build(bld): film_viewer.cc job_manager_view.cc job_wrapper.cc + config_dialog.cc """ # alignment.cc -# config_dialog.cc # dcp_range_dialog.cc # film_editor.cc # film_list.cc