1 /**
2 * \brief Fill and Stroke dialog
3 * based on sp_object_properties_dialog
4 *
5 * Authors:
6 * Bryce W. Harrington <bryce@bryceharrington.org>
7 * Gustav Broberg <broberg@kth.se>
8 *
9 * Copyright (C) 2004--2007 Authors
10 *
11 * Released under GNU GPL. Read the file 'COPYING' for more information.
12 */
14 #ifndef INKSCAPE_UI_DIALOG_FILL_AND_STROKE_H
15 #define INKSCAPE_UI_DIALOG_FILL_AND_STROKE_H
17 #include <gtkmm/adjustment.h>
18 #include <gtkmm/alignment.h>
19 #include <gtkmm/notebook.h>
20 #include <gtkmm/scale.h>
21 #include <gtkmm/spinbutton.h>
22 #include <glibmm/i18n.h>
24 #include "ui/widget/panel.h"
25 #include "ui/widget/notebook-page.h"
26 #include "ui/widget/filter-effect-chooser.h"
28 using namespace Inkscape::UI::Widget;
30 namespace Inkscape {
31 namespace UI {
32 namespace Dialog {
34 class FillAndStroke : public UI::Widget::Panel {
35 public:
36 FillAndStroke();
37 virtual ~FillAndStroke();
39 static FillAndStroke &getInstance() { return *new FillAndStroke(); }
41 void selectionChanged(Inkscape::Application *inkscape,
42 Inkscape::Selection *selection);
44 void showPageFill();
45 void showPageStrokePaint();
46 void showPageStrokeStyle();
48 protected:
49 Gtk::Notebook _notebook;
51 NotebookPage _page_fill;
52 NotebookPage _page_stroke_paint;
53 NotebookPage _page_stroke_style;
55 Gtk::VBox _fe_vbox;
56 Gtk::Alignment _fe_alignment;
58 Gtk::VBox _opacity_vbox;
59 Gtk::HBox _opacity_label_box;
60 Gtk::HBox _opacity_hbox;
61 Gtk::Label _opacity_label;
62 Gtk::Adjustment _opacity_adjustment;
63 Gtk::HScale _opacity_hscale;
64 Gtk::SpinButton _opacity_spin_button;
66 Gtk::HBox &_createPageTabLabel(const Glib::ustring &label,
67 const char *label_image);
68 SimpleFilterModifier _fe_cb;
70 void _layoutPageFill();
71 void _layoutPageStrokePaint();
72 void _layoutPageStrokeStyle();
74 void _blendBlurValueChanged();
75 void _opacityValueChanged();
77 bool _blocked;
79 private:
80 FillAndStroke(FillAndStroke const &d);
81 FillAndStroke& operator=(FillAndStroke const &d);
82 };
84 } // namespace Dialog
85 } // namespace UI
86 } // namespace Inkscape
88 #endif // INKSCAPE_UI_DIALOG_FILL_AND_STROKE_H
90 /*
91 Local Variables:
92 mode:c++
93 c-file-style:"stroustrup"
94 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
95 indent-tabs-mode:nil
96 fill-column:99
97 End:
98 */
99 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :