From fcc198ade86e2e1fd0eb563b983c92acf1437c84 Mon Sep 17 00:00:00 2001 From: gouldtj Date: Wed, 29 Mar 2006 05:44:27 +0000 Subject: [PATCH] r11142@tres: ted | 2006-03-27 21:52:50 -0800 Adding in the basic infrastructure for handling the cascading status dialogs between the different subclasses of widgets. --- src/extension/effect.cpp | 6 ++++ src/extension/effect.h | 2 ++ src/extension/extension.cpp | 62 ++++++++++++++++++++++++++++++++----- src/extension/extension.h | 10 ++++-- 4 files changed, 70 insertions(+), 10 deletions(-) diff --git a/src/extension/effect.cpp b/src/extension/effect.cpp index 55cf42b2f..78af878d3 100644 --- a/src/extension/effect.cpp +++ b/src/extension/effect.cpp @@ -261,6 +261,12 @@ Effect::find_effects_list (Inkscape::XML::Node * menustruct) return false; } +Gtk::VBox * +Effect::get_info_widget(void) +{ + return Extension::get_info_widget(); +} + /** \brief Create an action for a \c EffectVerb \param view Which view the action should be created for \return The built action. diff --git a/src/extension/effect.h b/src/extension/effect.h index 32eebb32b..493af142b 100644 --- a/src/extension/effect.h +++ b/src/extension/effect.h @@ -92,6 +92,8 @@ public: static void place_menus (void); void place_menu (Inkscape::XML::Node * menus); + Gtk::VBox * get_info_widget(void); + private: static gchar * remove_ (gchar * instr); }; diff --git a/src/extension/extension.cpp b/src/extension/extension.cpp index 03b12e0a1..d71c27d12 100644 --- a/src/extension/extension.cpp +++ b/src/extension/extension.cpp @@ -24,6 +24,8 @@ #include #include #include +#include +#include #include "inkscape.h" #include "extension/implementation/implementation.h" @@ -627,26 +629,72 @@ Extension::paramString (void) /* Extension editor dialog stuff */ -Gtk::Widget * +Gtk::VBox * Extension::get_info_widget(void) { - Gtk::Widget * retval = Gtk::manage(new Gtk::Label("Info")); - retval->show(); + Gtk::VBox * retval = Gtk::manage(new Gtk::VBox()); + + Gtk::Frame * info = Gtk::manage(new Gtk::Frame("General Extension Information")); + retval->pack_start(*info, true, true, 5); + + Gtk::Table * table = Gtk::manage(new Gtk::Table()); + info->add(*table); + + int row = 0; + add_val(_("Name:"), _(name), table, &row); + add_val(_("ID:"), id, table, &row); + add_val(_("State:"), _state == STATE_LOADED ? _("Loaded") : _state == STATE_UNLOADED ? _("Unloaded") : _("Deactivated"), table, &row); + + + retval->show_all(); return retval; } -Gtk::Widget * +void +Extension::add_val(Glib::ustring labelstr, Glib::ustring valuestr, Gtk::Table * table, int * row) +{ + Gtk::Label * label; + Gtk::Label * value; + + (*row)++; + label = Gtk::manage(new Gtk::Label(labelstr)); + value = Gtk::manage(new Gtk::Label(valuestr)); + table->attach(*label, 0, 1, (*row) - 1, *row); + table->attach(*value, 1, 2, (*row) - 1, *row); + + label->show(); + value->show(); + + return; +} + +Gtk::VBox * Extension::get_help_widget(void) { - Gtk::Widget * retval = Gtk::manage(new Gtk::Label("Help")); + Gtk::VBox * retval = Gtk::manage(new Gtk::VBox()); + + if (_help == NULL) { + Gtk::Label * content = Gtk::manage(new Gtk::Label("Currently there is no help available for this Extension. Please look on the Inkscape website or ask on the mailing lists if you have questions regarding this extension.")); + retval->pack_start(*content, true, true, 5); + content->set_line_wrap(true); + content->show(); + } else { + + + + } + retval->show(); return retval; } -Gtk::Widget * +Gtk::VBox * Extension::get_params_widget(void) { - Gtk::Widget * retval = Gtk::manage(new Gtk::Label("Params")); + Gtk::VBox * retval = Gtk::manage(new Gtk::VBox()); + Gtk::Widget * content = Gtk::manage(new Gtk::Label("Params")); + retval->pack_start(*content, true, true, 5); + content->show(); retval->show(); return retval; } diff --git a/src/extension/extension.h b/src/extension/extension.h index 62d455fcf..2e0586501 100644 --- a/src/extension/extension.h +++ b/src/extension/extension.h @@ -18,6 +18,8 @@ #include #include #include +#include +#include #include #include "xml/repr.h" #include "extension/extension-forward.h" @@ -172,9 +174,11 @@ public: /* Extension editor dialog stuff */ public: - Gtk::Widget * get_info_widget(void); - Gtk::Widget * get_help_widget(void); - Gtk::Widget * get_params_widget(void); + Gtk::VBox * get_info_widget(void); + Gtk::VBox * get_help_widget(void); + Gtk::VBox * get_params_widget(void); +protected: + inline static void add_val(Glib::ustring labelstr, Glib::ustring valuestr, Gtk::Table * table, int * row); }; -- 2.30.2