index 86f1a50bed8518a9a4187a53589cecc3e448a813..3058b939f5df0e66a347a4c09dc83d2e87709641 100644 (file)
namespace Inkscape {
namespace Extension {
+/** \brief Creates a new preference dialog for extension preferences
+ \param name Name of the Extension who's dialog this is
+ \param help The help string for the extension (NULL if none)
+ \param controls The extension specific widgets in the dialog
+
+ This function initializes the dialog with the name of the extension
+ in the title. It adds a few buttons and sets up handlers for
+ them. It also places the passed in widgets into the dialog.
+*/
PrefDialog::PrefDialog (Glib::ustring name, gchar const * help, Gtk::Widget * controls) :
- Gtk::Dialog::Dialog(name + _(" Preferences"), true, true), _help(help), _name(name)
+ Gtk::Dialog::Dialog("Temp Title", true, true), _help(help), _name(name)
{
- this->get_vbox()->pack_start(*controls, true, true, 5);
+ /* A hack to internationalize the title properly */
+ gchar * title = g_strdup_printf(_("%s Preferences"), name.c_str());
+ this->set_title(title);
+ g_free(title);
+
+ Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox());
+ hbox->pack_start(*controls, true, true, 6);
+ hbox->show();
+ this->get_vbox()->pack_start(*hbox, true, true, 6);
- if (_help != NULL)
- add_button(Gtk::Stock::HELP, Gtk::RESPONSE_HELP);
+
+ /*
+ Gtk::Button * help_button = add_button(Gtk::Stock::HELP, Gtk::RESPONSE_HELP);
+ if (_help == NULL)
+ help_button->set_sensitive(false);
+ */
add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
Gtk::Button * ok = add_button(Gtk::Stock::OK, Gtk::RESPONSE_OK);
return;
}
+/** \brief Runs the dialog
+ \return The response to the dialog
+
+ This function overrides the run function in the GTKmm dialog
+ class, but basically it only calls it. This function only
+ handles the \c Gtk::RESPONSE_HELP return, and in that case it
+ brings up the help window. All other return values are returned
+ to the calling function.
+*/
+int
+PrefDialog::run (void) {
+ int resp = Gtk::RESPONSE_HELP;
+ while (resp == Gtk::RESPONSE_HELP) {
+ resp = Gtk::Dialog::run();
+ if (resp == Gtk::RESPONSE_HELP) {
+
+ }
+ }
+ return resp;
+}
+
}; }; /* namespace Inkscape, Extension */
/*