Code

family name field on svgfonts dialog now properly saves attribute. Should do the...
[inkscape.git] / src / ui / dialog / fill-and-stroke.h
index 0e63ef1c327765f56a4e0bc394a6568fcb49708c..37aa4ccc885dbf53c87fa4094d1e304cb4248ba7 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/panel.h"
 #include "ui/widget/notebook-page.h"
+#include "ui/widget/object-composite-settings.h"
 
 using namespace Inkscape::UI::Widget;
 
@@ -24,19 +31,36 @@ namespace Inkscape {
 namespace UI {
 namespace Dialog {
 
-class FillAndStroke : public Dialog {
+class FillAndStroke : public UI::Widget::Panel {
 public:
     FillAndStroke();
     virtual ~FillAndStroke();
 
-    static FillAndStroke *create() { return new FillAndStroke(); }
+    static FillAndStroke &getInstance() { return *new FillAndStroke(); }
+
+    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;
+
+    StyleSubject::Selection _subject;
+    ObjectCompositeSettings _composite_settings;
+
+    Gtk::HBox &_createPageTabLabel(const Glib::ustring &label, 
+                                   const char *label_image);
 
-    NotebookPage   _page_fill;
-    NotebookPage   _page_stroke_paint;
-    NotebookPage   _page_stroke_style;
+    void _layoutPageFill();
+    void _layoutPageStrokePaint();
+    void _layoutPageStrokeStyle();
 
 private:
     FillAndStroke(FillAndStroke const &d);