Code

SPShape c++ified to the extent it was possible and more changes done for XML privatis...
[inkscape.git] / src / extension / prefdialog.h
index 059cfce45965a15964a3d1d5dd2f2dc08e021785..0a10881d6889d4de120356ca86342e9549598d14 100644 (file)
@@ -2,7 +2,7 @@
  * Authors:
  *   Ted Gould <ted@gould.cx>
  *
- * Copyright (C) 2005 Authors
+ * Copyright (C) 2005,2007-2008 Authors
  *
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
@@ -19,7 +19,7 @@
 #include <gtkmm/socket.h>
 
 #include "execution-env.h"
-#include "parameter.h"
+#include "param/parameter.h"
 
 namespace Inkscape {
 namespace Extension {
@@ -30,8 +30,6 @@ 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;
@@ -40,41 +38,42 @@ class PrefDialog : public Gtk::Dialog {
 
     /** \brief  Button to control live preview */
     Gtk::Widget * _button_preview;
-    /** \brief  Button to control whether the dialog is pinned */
-    Gtk::Widget * _button_pinned;
+    /** \brief  Checkbox for the preview */
+    Gtk::CheckButton * _checkbox_preview;
 
     /** \brief  Parameter to control live preview */
     Parameter * _param_preview;
-    /** \brief  Parameter to control pinning the dialog */
-    Parameter * _param_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;
 
     /** \brief Signal that the user is changing the live effect state */
     sigc::signal<void> _signal_preview;
-    /** \brief Signal that the user is changing the pinned state */
-    sigc::signal<void> _signal_pinned;
+    /** \brief Signal that one of the parameters change */
+    sigc::signal<void> _signal_param_change;
 
+    /** \brief  If this is the preferences for an effect, the effect
+                that we're working with. */
     Effect * _effect;
+    /** \brief  If we're executing in preview mode here is the execution
+                environment for the effect. */
+    ExecutionEnv * _exEnv;
 
-    void preview_toggle(void);
-    void pinned_toggle(void);
+    /** \brief  The timer used to make it so that parameters don't respond
+                directly and allows for changes. */
+    sigc::connection _timersig;
 
+    void preview_toggle(void);
+    void param_change(void);
+    bool param_timer_expire(void);
     void on_response (int signal);
 
 public:
     PrefDialog (Glib::ustring name,
                 gchar const * help,
-                Gtk::Widget * controls,
-                ExecutionEnv * exEnv = NULL,
+                Gtk::Widget * controls = NULL,
                 Effect * effect = NULL);
-    ~PrefDialog ();
-    int run (void);
-
-    void setPreviewState (Glib::ustring state);
+    virtual ~PrefDialog ();
 };