diff --git a/src/configure_policy_dialog.cc b/src/configure_policy_dialog.cc index 2ecc27b..aa4e231 100644 --- a/src/configure_policy_dialog.cc +++ b/src/configure_policy_dialog.cc @@ -43,9 +43,11 @@ using namespace Gtk; // of the table. If you change it, you've to edit all the other methods // to reflect it, expecially "on_okay()" -ConfigurePolicyDialog::ConfigurePolicyDialog(const Glib::ustring title, +ConfigurePolicyDialog::ConfigurePolicyDialog(const Glib::ustring& title, + Gtk::Window& parent, + const Glib::ustring& description, PolicyParameters& parameters) - : Gtk::Dialog(title, true, true), _parameters(parameters), + : Gtk::Dialog(title, parent, true, true), _parameters(parameters), _table_int(NULL), _table_float(NULL), _table_string(NULL) { typedef std::map > IntParams; @@ -55,13 +57,22 @@ ConfigurePolicyDialog::ConfigurePolicyDialog(const Glib::ustring title, VBox& main_vbox = *get_vbox(); guint row_n; + // Insert policy description + Frame& descr_frame = *manage(create_category(_("Policy description"))); + main_vbox.pack_start(descr_frame); + Label& descr_label = *manage(new Label(description)); + descr_label.set_line_wrap(true); + descr_label.set_justify(JUSTIFY_FILL); + descr_label.set_padding(5, 5); + descr_frame.add(descr_label); + + // Integer parameters const IntParams intpars = _parameters.get_registered_int_parameters(); - if(!intpars.empty()) { Frame& intframe = *manage(create_category(_("Integer values"))); - main_vbox.pack_end(intframe); + main_vbox.pack_start(intframe); _table_int = manage(new Table(intpars.size(), 2)); _table_int->set_row_spacings(2); _table_int->set_col_spacings(2); @@ -79,7 +90,7 @@ ConfigurePolicyDialog::ConfigurePolicyDialog(const Glib::ustring title, if(!floatpars.empty()) { Frame& floatframe = *manage(create_category(_("Floating point values"))); - main_vbox.pack_end(floatframe); + main_vbox.pack_start(floatframe); _table_float = manage(new Table(floatpars.size(), 2)); _table_float->set_row_spacings(2); _table_float->set_col_spacings(2); @@ -96,7 +107,7 @@ ConfigurePolicyDialog::ConfigurePolicyDialog(const Glib::ustring title, if(!stringpars.empty()) { Frame& stringframe = *manage(create_category(_("Alphanumerical values"))); - main_vbox.pack_end(stringframe); + main_vbox.pack_start(stringframe); _table_string = manage(new Table(stringpars.size(), 2)); _table_string->set_row_spacings(2); _table_string->set_col_spacings(2); @@ -111,6 +122,7 @@ ConfigurePolicyDialog::ConfigurePolicyDialog(const Glib::ustring title, if(_table_int == NULL && _table_float == NULL && _table_string == NULL) { Label& message = *manage(new Label(_("No options to configure for this policy"))); + message.set_padding(5, 5); main_vbox.pack_end(message); } diff --git a/src/configure_policy_dialog.hh b/src/configure_policy_dialog.hh index fe7bda5..7233441 100644 --- a/src/configure_policy_dialog.hh +++ b/src/configure_policy_dialog.hh @@ -36,7 +36,10 @@ namespace sgpem class ConfigurePolicyDialog : public Gtk::Dialog { public: - ConfigurePolicyDialog(const Glib::ustring title, PolicyParameters& parameters); + ConfigurePolicyDialog(const Glib::ustring& title, + Gtk::Window& parent, + const Glib::ustring& description, + PolicyParameters& parameters); protected: Gtk::Frame* create_category(const Glib::ustring& type_name) const; diff --git a/src/gui_builder.cc b/src/gui_builder.cc index c276bbb..9273a54 100644 --- a/src/gui_builder.cc +++ b/src/gui_builder.cc @@ -209,14 +209,16 @@ GuiBuilder::on_configure_cpu_policy() if(policy == NULL) { - MessageDialog warn(_("No CPU policy is currently selected.\nPlease choose one before trying to configure it."), + MessageDialog warn(get_initial_window(), + _("No CPU policy is currently selected.\nPlease choose one before trying to configure it."), true, MESSAGE_WARNING, BUTTONS_OK, true); warn.run(); return; } PolicyParameters& params = policy->get_parameters(); - ConfigurePolicyDialog config_dialog(_("Configuring CPU Policy ") + policy->get_name(), params); + ConfigurePolicyDialog config_dialog(_("Configuring CPU Policy ") + policy->get_name(), + get_initial_window(), policy->get_description(), params); config_dialog.run(); } @@ -230,14 +232,16 @@ GuiBuilder::on_configure_resource_policy() if(policy == NULL) { - MessageDialog warn(_("No CPU policy is currently selected.\nPlease choose one before trying to configure it."), + MessageDialog warn(get_initial_window(), + _("No CPU policy is currently selected.\nPlease choose one before trying to configure it."), true, MESSAGE_WARNING, BUTTONS_OK, true); warn.run(); return; } PolicyParameters& params = policy->get_parameters(); - ConfigurePolicyDialog config_dialog(_("Configuring CPU Policy ") + policy->get_name(), params); + ConfigurePolicyDialog config_dialog(_("Configuring CPU Policy ") + policy->get_name(), + get_initial_window(), policy->get_description(), params); config_dialog.run(); } @@ -528,7 +532,7 @@ SimulationController::run_simulation_adaptor() } catch(const CPUPolicyException& cpe) { - MessageDialog diag(_("Unexpected error:\n") + Markup::escape_text(cpe.what()), + MessageDialog diag(_("Unexpected error:\n") + Markup::escape_text(cpe.what()), true, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true); diag.run(); }