Code

Warning cleanup
[inkscape.git] / src / ui / dialog / fill-and-stroke.h
index 0e63ef1c327765f56a4e0bc394a6568fcb49708c..8c27d6d0a1d835a917f895e951865b807354e664 100644 (file)
@@ -1,10 +1,12 @@
 /**
  * \brief Fill and Stroke dialog
+ * based on sp_object_properties_dialog
  *
  * Authors:
  *   Bryce W. Harrington <bryce@bryceharrington.org>
+ *   Gustav Broberg <broberg@kth.se>
  *
- * Copyright (C) 2004, 2005 Authors
+ * Copyright (C) 2004--2007 Authors
  *
  * Released under GNU GPL.  Read the file 'COPYING' for more information.
  */
 #ifndef INKSCAPE_UI_DIALOG_FILL_AND_STROKE_H
 #define INKSCAPE_UI_DIALOG_FILL_AND_STROKE_H
 
+#include <gtkmm/adjustment.h>
+#include <gtkmm/alignment.h>
 #include <gtkmm/notebook.h>
+#include <gtkmm/scale.h>
+#include <gtkmm/spinbutton.h>
 #include <glibmm/i18n.h>
 
 #include "dialog.h"
 #include "ui/widget/notebook-page.h"
+#include "ui/widget/filter-effect-chooser.h"
 
 using namespace Inkscape::UI::Widget;
 
@@ -26,17 +33,49 @@ namespace Dialog {
 
 class FillAndStroke : public Dialog {
 public:
-    FillAndStroke();
+    FillAndStroke(Behavior::BehaviorFactory behavior_factory);
     virtual ~FillAndStroke();
 
-    static FillAndStroke *create() { return new FillAndStroke(); }
+    static FillAndStroke *create(Behavior::BehaviorFactory behavior_factory)
+    { return new FillAndStroke(behavior_factory); }
+
+    void selectionChanged(Inkscape::Application *inkscape,
+                          Inkscape::Selection *selection);
+
+    void showPageFill();
+    void showPageStrokePaint();
+    void showPageStrokeStyle();
 
 protected:
-    Gtk::Notebook  _notebook;
+    Gtk::Notebook   _notebook;
+
+    NotebookPage    _page_fill;
+    NotebookPage    _page_stroke_paint;
+    NotebookPage    _page_stroke_style;
+
+    Gtk::VBox       _fe_vbox;
+    Gtk::Alignment  _fe_alignment;
+
+    Gtk::VBox       _opacity_vbox;
+    Gtk::HBox       _opacity_label_box;
+    Gtk::HBox       _opacity_hbox;
+    Gtk::Label      _opacity_label;
+    Gtk::Adjustment _opacity_adjustment;
+    Gtk::HScale     _opacity_hscale;
+    Gtk::SpinButton _opacity_spin_button;
+
+    Gtk::HBox& _createPageTabLabel(const Glib::ustring& label, 
+                                   const char *label_image);
+    SimpleFilterModifier _fe_cb;
+
+    void _layoutPageFill();
+    void _layoutPageStrokePaint();
+    void _layoutPageStrokeStyle();
+
+    void _blendBlurValueChanged();
+    void _opacityValueChanged();
 
-    NotebookPage   _page_fill;
-    NotebookPage   _page_stroke_paint;
-    NotebookPage   _page_stroke_style;
+    bool _blocked;
 
 private:
     FillAndStroke(FillAndStroke const &d);