diff options
| author | Ted Gould <ted@gould.cx> | 2007-09-01 04:27:55 +0000 |
|---|---|---|
| committer | gouldtj <gouldtj@users.sourceforge.net> | 2007-09-01 04:27:55 +0000 |
| commit | 6dc9aa5a0656bfb2c710e5c3c30dab07507de04a (patch) | |
| tree | f466a05459af99529a20077d78e943038c787d32 /src | |
| parent | Change dock item iconify icon (diff) | |
| download | inkscape-6dc9aa5a0656bfb2c710e5c3c30dab07507de04a.tar.gz inkscape-6dc9aa5a0656bfb2c710e5c3c30dab07507de04a.zip | |
r16003@tres: ted | 2007-07-27 08:51:45 -0700
Nothing new is working really, but this is a good stopping point in the
restructuring.
(bzr r3633)
Diffstat (limited to 'src')
| -rw-r--r-- | src/extension/execution-env.cpp | 2 | ||||
| -rw-r--r-- | src/extension/prefdialog.cpp | 54 | ||||
| -rw-r--r-- | src/extension/prefdialog.h | 25 |
3 files changed, 66 insertions, 15 deletions
diff --git a/src/extension/execution-env.cpp b/src/extension/execution-env.cpp index f43e95329..547eb5a30 100644 --- a/src/extension/execution-env.cpp +++ b/src/extension/execution-env.cpp @@ -92,7 +92,7 @@ ExecutionEnv::createPrefsDialog (Gtk::Widget * controls) { delete _visibleDialog; } - _visibleDialog = new PrefDialog(_effect->get_name(), _effect->get_help(), controls); + _visibleDialog = new PrefDialog(_effect->get_name(), _effect->get_help(), controls, this); _visibleDialog->signal_response().connect(sigc::mem_fun(this, &ExecutionEnv::preferencesResponse)); _visibleDialog->show(); diff --git a/src/extension/prefdialog.cpp b/src/extension/prefdialog.cpp index 7c3b76639..2bc971d01 100644 --- a/src/extension/prefdialog.cpp +++ b/src/extension/prefdialog.cpp @@ -2,12 +2,14 @@ * Authors: * Ted Gould <ted@gould.cx> * - * Copyright (C) 2005-2006 Authors + * Copyright (C) 2005-2007 Authors * * Released under GNU GPL, read the file 'COPYING' for more information */ #include <gtkmm/stock.h> +#include <gtkmm/checkbutton.h> +#include <gtkmm/separator.h> #include <glibmm/i18n.h> #include "../dialogs/dialog-events.h" @@ -17,6 +19,7 @@ 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) @@ -26,31 +29,47 @@ namespace 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.c_str()), true, true), _help(help), _name(name) +PrefDialog::PrefDialog (Glib::ustring name, gchar const * help, Gtk::Widget * controls, ExecutionEnv * exEnv) : + Gtk::Dialog::Dialog(_(name.c_str()), true, true), + _help(help), + _name(name), + _exEnv(exEnv), + _button_ok(NULL), + _button_cancel(NULL), + _button_preview(NULL), + _button_pinned(NULL) { - // I'm leaving the following in here as I'm perhaps missing something - /* A hack to internationalize the title properly */ - //gchar * title = g_strdup_printf("%s", 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 (_exEnv != NULL) { + Gtk::HSeparator * sep = Gtk::manage(new Gtk::HSeparator()); + sep->show(); + this->get_vbox()->pack_start(*sep, true, true, 4); + + hbox = Gtk::manage(new Gtk::HBox()); + _button_preview = Gtk::manage(new Gtk::CheckButton(_("Live Preview"))); + _button_preview->show(); + _button_pinned = Gtk::manage(new Gtk::CheckButton(_("Pin Dialog"))); + _button_pinned->show(); + hbox->pack_start(*_button_preview, true, true,6); + hbox->pack_start(*_button_pinned, true, true,6); + hbox->show(); + this->get_vbox()->pack_start(*hbox, true, true, 6); + } /* 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); + _button_cancel = add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); - Gtk::Button * ok = add_button(Gtk::Stock::OK, Gtk::RESPONSE_OK); + _button_ok = add_button(Gtk::Stock::OK, Gtk::RESPONSE_OK); set_default_response(Gtk::RESPONSE_OK); - ok->grab_focus(); + _button_ok->grab_focus(); GtkWidget *dlg = GTK_WIDGET(gobj()); sp_transientize(dlg); @@ -73,7 +92,11 @@ PrefDialog::run (void) { while (resp == Gtk::RESPONSE_HELP) { resp = Gtk::Dialog::run(); if (resp == Gtk::RESPONSE_HELP) { - + /* + if (_helpDialog == NULL) { + _helpDialog = new HelpDialog(_help); + } + */ } } return resp; @@ -89,6 +112,11 @@ PrefDialog::setPinned (bool in_pin) { set_modal(!in_pin); } +#include "internal/clear-n_.h" + +const char * PrefDialog::pinned_param_xml = "<param name=\"__pinned__\" type=\"boolean\" gui-text=\"" N_("Pin Dialog") "\" gui-description=\"" N_("Toggles whether the dialog stays for multiple executions or disappears after one") "\" scope=\"user\">false</param>"; +const char * PrefDialog::live_param_xml = "<param name=\"__live_effect__\" type=\"boolean\" gui-text=\"" N_("Live Preview") "\" gui-description=\"" N_("Controls whether the effect settings are rendered live on canvas") "\" scope=\"user\">false</param>"; + }; }; /* namespace Inkscape, Extension */ /* diff --git a/src/extension/prefdialog.h b/src/extension/prefdialog.h index 4b7aa67b5..1965b7e96 100644 --- a/src/extension/prefdialog.h +++ b/src/extension/prefdialog.h @@ -15,8 +15,11 @@ #include <gdkmm/types.h> #include <gtkmm/dialog.h> +#include <gtkmm/checkbutton.h> #include <gtkmm/socket.h> +#include "execution-env.h" + namespace Inkscape { namespace Extension { @@ -26,9 +29,29 @@ class PrefDialog : public Gtk::Dialog { gchar const * _help; /** \brief Name of the extension */ Glib::ustring _name; + /** \brief An execution environment if there is one */ + ExecutionEnv * _exEnv; + + /** \brief A pointer to the OK button */ + Gtk::Button * _button_ok; + /** \brief A pointer to the CANCEL button */ + Gtk::Button * _button_cancel; + + /** \brief Button to control live preview */ + Gtk::CheckButton * _button_preview; + /** \brief Button to control whether the dialog is pinned */ + Gtk::CheckButton * _button_pinned; + + /** \brief XML to define the pinned parameter on the dialog */ + static const char * pinned_param_xml; + /** \brief XML to define the live effects parameter on the dialog */ + static const char * live_param_xml; public: - PrefDialog (Glib::ustring name, gchar const * help, Gtk::Widget * controls); + PrefDialog (Glib::ustring name, + gchar const * help, + Gtk::Widget * controls, + ExecutionEnv * exEnv = NULL); int run (void); void setPreviewState (Glib::ustring state); |
