Code

r11472@tres: ted | 2006-04-22 20:32:45 -0700
[inkscape.git] / src / extension / extension.h
index a0c991cf25cceeffb57ce0e21fe3f5d8443196f4..f6010b1ea856f297fefb2986af94b5246c0758fd 100644 (file)
@@ -18,6 +18,8 @@
 #include <fstream>
 #include <vector>
 #include <gtkmm/widget.h>
+#include <gtkmm/box.h>
+#include <gtkmm/table.h>
 #include <glibmm/ustring.h>
 #include "xml/repr.h"
 #include "extension/extension-forward.h"
@@ -86,6 +88,7 @@ public:
 private:
     gchar     *id;                        /**< The unique identifier for the Extension */
     gchar     *name;                      /**< A user friendly name for the Extension */
+    gchar     *_help;                     /**< A string that contains a help text for the user */
     state_t    _state;                    /**< Which state the Extension is currently in */
     std::vector<Dependency *>  _deps;     /**< Dependencies for this extension */
     static std::ofstream error_file;      /**< This is the place where errors get reported */
@@ -107,6 +110,8 @@ public:
     Inkscape::XML::Node *      get_repr     (void);
     gchar *       get_id       (void);
     gchar *       get_name     (void);
+    /** \brief  Gets the help string for this extension */
+    gchar const * get_help     (void) { return _help; }
     void          deactivate   (void);
     bool          deactivated  (void);
     void          printFailure (Glib::ustring reason);
@@ -138,25 +143,33 @@ private:
 #endif
 public:
     bool             get_param_bool   (const gchar * name,
-                                       const Inkscape::XML::Document *   doc = NULL);
+                                       const Inkscape::XML::Document *   doc = NULL,
+                                       const Inkscape::XML::Node * node = NULL);
     int              get_param_int    (const gchar * name,
-                                       const Inkscape::XML::Document *   doc = NULL);
+                                       const Inkscape::XML::Document *   doc = NULL,
+                                       const Inkscape::XML::Node * node = NULL);
     float            get_param_float  (const gchar * name,
-                                       const Inkscape::XML::Document *   doc = NULL);
+                                       const Inkscape::XML::Document *   doc = NULL,
+                                       const Inkscape::XML::Node * node = NULL);
     const gchar *    get_param_string (const gchar * name,
-                                       const Inkscape::XML::Document *   doc = NULL);
+                                       const Inkscape::XML::Document *   doc = NULL,
+                                       const Inkscape::XML::Node * node = NULL);
     bool             set_param_bool   (const gchar * name,
                                        bool          value,
-                                       Inkscape::XML::Document *   doc = NULL);
+                                       Inkscape::XML::Document *   doc = NULL,
+                                       Inkscape::XML::Node *       node = NULL);
     int              set_param_int    (const gchar * name,
                                        int           value,
-                                       Inkscape::XML::Document *   doc = NULL);
+                                       Inkscape::XML::Document *   doc = NULL,
+                                       Inkscape::XML::Node *       node = NULL);
     float            set_param_float  (const gchar * name,
                                        float         value,
-                                       Inkscape::XML::Document *   doc = NULL);
+                                       Inkscape::XML::Document *   doc = NULL,
+                                       Inkscape::XML::Node *       node = NULL);
     const gchar *    set_param_string (const gchar * name,
                                        const gchar * value,
-                                       Inkscape::XML::Document *   doc = NULL);
+                                       Inkscape::XML::Document *   doc = NULL,
+                                       Inkscape::XML::Node *       node = NULL);
 
     /* Error file handling */
 public:
@@ -166,6 +179,15 @@ public:
 public:
     Gtk::Widget *    autogui (void);
     Glib::ustring *  paramString (void);
+
+    /* Extension editor dialog stuff */
+public:
+    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);
+
 };