1 /** @file
2 * @brief Fill and Stroke dialog
3 */
4 /* Authors:
5 * Bryce W. Harrington <bryce@bryceharrington.org>
6 * Gustav Broberg <broberg@kth.se>
7 * Jon A. Cruz <jon@joncruz.org>
8 *
9 * Copyright (C) 2004--2007 Authors
10 * Copyright (C) 2010 Jon A. Cruz
11 *
12 * Released under GNU GPL. Read the file 'COPYING' for more information.
13 */
15 #ifndef INKSCAPE_UI_DIALOG_FILL_AND_STROKE_H
16 #define INKSCAPE_UI_DIALOG_FILL_AND_STROKE_H
18 #include <gtkmm/adjustment.h>
19 #include <gtkmm/alignment.h>
20 #include <gtkmm/notebook.h>
21 #include <gtkmm/scale.h>
22 #include <gtkmm/spinbutton.h>
23 #include <glibmm/i18n.h>
25 #include "ui/widget/panel.h"
26 #include "ui/widget/notebook-page.h"
27 #include "ui/widget/object-composite-settings.h"
28 #include "ui/dialog/desktop-tracker.h"
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(); }
42 virtual void setDesktop(SPDesktop *desktop);
44 void selectionChanged(Inkscape::Application *inkscape,
45 Inkscape::Selection *selection);
47 void showPageFill();
48 void showPageStrokePaint();
49 void showPageStrokeStyle();
51 protected:
52 Gtk::Notebook _notebook;
54 UI::Widget::NotebookPage _page_fill;
55 UI::Widget::NotebookPage _page_stroke_paint;
56 UI::Widget::NotebookPage _page_stroke_style;
58 UI::Widget::StyleSubject::Selection _subject;
59 UI::Widget::ObjectCompositeSettings _composite_settings;
61 Gtk::HBox &_createPageTabLabel(const Glib::ustring &label,
62 const char *label_image);
64 void _layoutPageFill();
65 void _layoutPageStrokePaint();
66 void _layoutPageStrokeStyle();
68 private:
69 FillAndStroke(FillAndStroke const &d);
70 FillAndStroke& operator=(FillAndStroke const &d);
72 void setTargetDesktop(SPDesktop *desktop);
74 DesktopTracker deskTrack;
75 SPDesktop *targetDesktop;
76 Gtk::Widget *fillWdgt;
77 Gtk::Widget *strokeWdgt;
78 sigc::connection desktopChangeConn;
79 };
81 } // namespace Dialog
82 } // namespace UI
83 } // namespace Inkscape
86 #endif // INKSCAPE_UI_DIALOG_FILL_AND_STROKE_H
88 /*
89 Local Variables:
90 mode:c++
91 c-file-style:"stroustrup"
92 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
93 indent-tabs-mode:nil
94 fill-column:99
95 End:
96 */
97 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :