summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 71b8e79)
raw | patch | inline | side by side (parent: 71b8e79)
author | gouldtj <gouldtj@users.sourceforge.net> | |
Wed, 29 Mar 2006 05:42:22 +0000 (05:42 +0000) | ||
committer | gouldtj <gouldtj@users.sourceforge.net> | |
Wed, 29 Mar 2006 05:42:22 +0000 (05:42 +0000) |
The leg bone is connected to the knee bone
The extension bone is connected to the extension-editor bone
The extension bone is connected to the extension-editor bone
index 62f590be327d6119379ec3936002e9d763c21397..03b12e0a12938bc7cc6272ff0de7a104a86c7e41 100644 (file)
#include <glibmm/i18n.h>
#include <gtkmm/box.h>
+#include <gtkmm/label.h>
#include "inkscape.h"
#include "extension/implementation/implementation.h"
return param_string;
}
+/* Extension editor dialog stuff */
+
+Gtk::Widget *
+Extension::get_info_widget(void)
+{
+ Gtk::Widget * retval = Gtk::manage(new Gtk::Label("Info"));
+ retval->show();
+ return retval;
+}
+
+Gtk::Widget *
+Extension::get_help_widget(void)
+{
+ Gtk::Widget * retval = Gtk::manage(new Gtk::Label("Help"));
+ retval->show();
+ return retval;
+}
+
+Gtk::Widget *
+Extension::get_params_widget(void)
+{
+ Gtk::Widget * retval = Gtk::manage(new Gtk::Label("Params"));
+ retval->show();
+ return retval;
+}
+
} /* namespace Extension */
} /* namespace Inkscape */
index b4e7304521d80af2686f127591587ec9b7de899b..62d455fcf9968fd94ad0b6ab76a387ddb87256b5 100644 (file)
public:
Gtk::Widget * autogui (void);
Glib::ustring * paramString (void);
+
+ /* Extension editor dialog stuff */
+public:
+ Gtk::Widget * get_info_widget(void);
+ Gtk::Widget * get_help_widget(void);
+ Gtk::Widget * get_params_widget(void);
+
};
index 7cbde9e1fd92a2b7f9aa2403c82c58102894ae43..ed9d020c7b6ed0270a4e9b6763b37259d5a4a917 100644 (file)
#include "extension-editor.h"
#include "verbs.h"
#include "prefs-utils.h"
+#include "interface.h"
#include "extension/extension.h"
#include "extension/db.h"
ExtensionEditor::ExtensionEditor()
: Dialog ("dialogs.extensioneditor", SP_VERB_DIALOG_EXTENSIONEDITOR)
{
+ _notebook_info.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
+ _notebook_help.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
+ _notebook_params.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
//Main HBox
Gtk::HBox* hbox_list_page = Gtk::manage(new Gtk::HBox());
Glib::RefPtr<Gtk::TreeSelection> selection = _page_list.get_selection();
Gtk::TreeModel::iterator iter = selection->get_selected();
if (iter) {
- // _page_frame.remove();
+ /* Get the row info */
Gtk::TreeModel::Row row = *iter;
- // _current_page = row[_page_list_columns._col_page];
- // _page_title.set_markup("<span size='large'><b>" + row[_page_list_columns._col_name] + "</b></span>");
- // _page_frame.add(*_current_page);
- // _current_page->show();
Glib::ustring id = row[_page_list_columns._col_id];
+ Glib::ustring name = row[_page_list_columns._col_name];
+
+ /* Set the selection in the preferences */
prefs_set_string_attribute("dialogs.extensioneditor", "selected-extension", id.c_str());
+
+ /* Adjust the dialog's title */
+ gchar title[500];
+ sp_ui_dialog_title_string (Inkscape::Verb::get(SP_VERB_DIALOG_EXTENSIONEDITOR), title);
+ Glib::ustring utitle(title);
+ set_title(utitle + ": " + name);
+
+ /* Clear the notbook pages */
+ _notebook_info.remove();
+ _notebook_help.remove();
+ _notebook_params.remove();
+
+ /* Make sure we have all the widges */
+ Gtk::Widget * info;
+ info = row[_page_list_columns._col_info];
+ if (info == NULL) {
+ info = Inkscape::Extension::db.get(id.c_str())->get_info_widget();
+ row[_page_list_columns._col_info] = info;
+ //info->ref();
+ }
+
+ Gtk::Widget * help;
+ help = row[_page_list_columns._col_help];
+ if (help == NULL) {
+ help = Inkscape::Extension::db.get(id.c_str())->get_help_widget();
+ row[_page_list_columns._col_help] = help;
+ //help->ref();
+ }
+
+ Gtk::Widget * params;
+ params = row[_page_list_columns._col_params];
+ if (params == NULL) {
+ params = Inkscape::Extension::db.get(id.c_str())->get_params_widget();
+ row[_page_list_columns._col_params] = params;
+ //params->ref();
+ }
+
+ /* Place them in the pages */
+ if (info != NULL) {
+ _notebook_info.add(*info);
+ }
+ if (help != NULL) {
+ _notebook_help.add(*help);
+ }
+ if (params != NULL) {
+ _notebook_params.add(*params);
+ }
+
}
return;
Gtk::TreeModel::Row row = *iter;
row[_page_list_columns._col_name] = ext->get_name();
row[_page_list_columns._col_id] = ext->get_id();
- row[_page_list_columns._col_page] = NULL;
+ row[_page_list_columns._col_info] = NULL;
+ row[_page_list_columns._col_help] = NULL;
+ row[_page_list_columns._col_params] = NULL;
return iter;
}
index 65eb0c97ea1499450cb2dc070838e4a5b375650c..7fb6e87a53481418af814449675cc9e88267f55a 100644 (file)
#include <gtkmm/treeview.h>
#include <gtkmm/label.h>
#include <gtkmm/frame.h>
+#include <gtkmm/scrolledwindow.h>
#include "extension/extension.h"
/** \brief The model for the list of extensions */
Glib::RefPtr<Gtk::TreeStore> _page_list_model;
/** \brief The notebook page that contains information */
- Gtk::VBox _notebook_info;
+ Gtk::ScrolledWindow _notebook_info;
/** \brief The notebook page that contains help info */
- Gtk::VBox _notebook_help;
+ Gtk::ScrolledWindow _notebook_help;
/** \brief The notebook page that holds all the parameters */
- Gtk::VBox _notebook_params;
+ Gtk::ScrolledWindow _notebook_params;
//Pagelist model columns:
class PageListModelColumns : public Gtk::TreeModel::ColumnRecord {
public:
+ /** \brief Creates the Page List model by adding all of the
+ members of the class as column records. */
PageListModelColumns() {
Gtk::TreeModelColumnRecord::add(_col_name);
- Gtk::TreeModelColumnRecord::add(_col_page);
Gtk::TreeModelColumnRecord::add(_col_id);
+ Gtk::TreeModelColumnRecord::add(_col_info);
+ Gtk::TreeModelColumnRecord::add(_col_help);
+ Gtk::TreeModelColumnRecord::add(_col_params);
}
+ /** \brief Name of the extension */
Gtk::TreeModelColumn<Glib::ustring> _col_name;
+ /** \brief ID of the extension */
Gtk::TreeModelColumn<Glib::ustring> _col_id;
- Gtk::TreeModelColumn<Gtk::Widget *> _col_page;
+ /** \brief Info widget for the extension (NULL if unset) */
+ Gtk::TreeModelColumn<Gtk::Widget *> _col_info;
+ /** \brief Help widget for the extension (NULL if unset) */
+ Gtk::TreeModelColumn<Gtk::Widget *> _col_help;
+ /** \brief Parameters list of the extension (NULL if unset) */
+ Gtk::TreeModelColumn<Gtk::Widget *> _col_params;
};
PageListModelColumns _page_list_columns;