Code

Add functions for showing a specific notebook page in the F&S dialog,
[inkscape.git] / src / ui / dialog / fill-and-stroke.h
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 "dialog.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 Dialog {
35 public:
36     FillAndStroke(Behavior::BehaviorFactory behavior_factory);
37     virtual ~FillAndStroke();
39     static FillAndStroke *create(Behavior::BehaviorFactory behavior_factory)
40     { return new FillAndStroke(behavior_factory); }
42     void selectionChanged(Inkscape::Application *inkscape,
43                           Inkscape::Selection *selection);
45     void showPageFill();
46     void showPageStrokePaint();
47     void showPageStrokeStyle();
49 protected:
50     Gtk::Notebook   _notebook;
52     NotebookPage    _page_fill;
53     NotebookPage    _page_stroke_paint;
54     NotebookPage    _page_stroke_style;
56     Gtk::VBox       _fe_vbox;
57     Gtk::Alignment  _fe_alignment;
59     Gtk::VBox       _opacity_vbox;
60     Gtk::HBox       _opacity_label_box;
61     Gtk::HBox       _opacity_hbox;
62     Gtk::Label      _opacity_label;
63     Gtk::Adjustment _opacity_adjustment;
64     Gtk::HScale     _opacity_hscale;
65     Gtk::SpinButton _opacity_spin_button;
67     Gtk::HBox& _createPageTabLabel(const Glib::ustring& label, 
68                                    const char *label_image);
69     SimpleFilterModifier _fe_cb;
71     void _layoutPageFill();
72     void _layoutPageStrokePaint();
73     void _layoutPageStrokeStyle();
75     void _blendBlurValueChanged();
76     void _opacityValueChanged();
78     bool _blocked;
80 private:
81     FillAndStroke(FillAndStroke const &d);
82     FillAndStroke& operator=(FillAndStroke const &d);
83 };
85 } // namespace Dialog
86 } // namespace UI
87 } // namespace Inkscape
89 #endif // INKSCAPE_UI_DIALOG_FILL_AND_STROKE_H
91 /*
92   Local Variables:
93   mode:c++
94   c-file-style:"stroustrup"
95   c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
96   indent-tabs-mode:nil
97   fill-column:99
98   End:
99 */
100 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :