Code

r14551@tres: ted | 2007-02-24 15:22:47 -0800
[inkscape.git] / src / extension / extension.h
index a0c991cf25cceeffb57ce0e21fe3f5d8443196f4..81629a2dcaa53b386c0579479c55907c9ef91536 100644 (file)
 #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 "document.h"
 #include "extension/extension-forward.h"
 
 /** The key that is used to identify that the I/O should be autodetected */
@@ -40,6 +43,9 @@
 
 /** Defines the key for Postscript printing */
 #define SP_MODULE_KEY_PRINT_PS    "org.inkscape.print.ps"
+/** Defines the key for PDF printing */
+#define SP_MODULE_KEY_PRINT_PDF    "org.inkscape.print.pdf"
+#define SP_MODULE_KEY_PRINT_CAIRO_PDF  "org.inkscape.print.pdf.cairo"
 /** Defines the key for LaTeX printing */
 #define SP_MODULE_KEY_PRINT_LATEX    "org.inkscape.print.latex"
 /** Defines the key for printing with GNOME Print */
@@ -86,6 +92,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 +114,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 +147,33 @@ private:
 #endif
 public:
     bool             get_param_bool   (const gchar * name,
-                                       const Inkscape::XML::Document *   doc = NULL);
+                                       const SPDocument *   doc = NULL,
+                                       const Inkscape::XML::Node * node = NULL);
     int              get_param_int    (const gchar * name,
-                                       const Inkscape::XML::Document *   doc = NULL);
+                                       const SPDocument *   doc = NULL,
+                                       const Inkscape::XML::Node * node = NULL);
     float            get_param_float  (const gchar * name,
-                                       const Inkscape::XML::Document *   doc = NULL);
+                                       const SPDocument *   doc = NULL,
+                                       const Inkscape::XML::Node * node = NULL);
     const gchar *    get_param_string (const gchar * name,
-                                       const Inkscape::XML::Document *   doc = NULL);
+                                       const SPDocument *   doc = NULL,
+                                       const Inkscape::XML::Node * node = NULL);
     bool             set_param_bool   (const gchar * name,
                                        bool          value,
-                                       Inkscape::XML::Document *   doc = NULL);
+                                       SPDocument *   doc = NULL,
+                                       Inkscape::XML::Node *       node = NULL);
     int              set_param_int    (const gchar * name,
                                        int           value,
-                                       Inkscape::XML::Document *   doc = NULL);
+                                       SPDocument *   doc = NULL,
+                                       Inkscape::XML::Node *       node = NULL);
     float            set_param_float  (const gchar * name,
                                        float         value,
-                                       Inkscape::XML::Document *   doc = NULL);
+                                       SPDocument *   doc = NULL,
+                                       Inkscape::XML::Node *       node = NULL);
     const gchar *    set_param_string (const gchar * name,
                                        const gchar * value,
-                                       Inkscape::XML::Document *   doc = NULL);
+                                       SPDocument *   doc = NULL,
+                                       Inkscape::XML::Node *       node = NULL);
 
     /* Error file handling */
 public:
@@ -164,8 +181,17 @@ public:
     static void      error_file_close (void);
 
 public:
-    Gtk::Widget *    autogui (void);
+    Gtk::Widget *    autogui (SPDocument * doc, Inkscape::XML::Node * node);
     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);
+
 };