Fix a crash when running single-threaded and dragging the time slider.
[synfig.git] / synfig-studio / trunk / src / gtkmm / widget_defaults.h
1 /* === S Y N F I G ========================================================= */
2 /*!     \file widget_defaults.h
3 **      \brief Template Header
4 **
5 **      $Id$
6 **
7 **      \legal
8 **      Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
9 **
10 **      This package is free software; you can redistribute it and/or
11 **      modify it under the terms of the GNU General Public License as
12 **      published by the Free Software Foundation; either version 2 of
13 **      the License, or (at your option) any later version.
14 **
15 **      This package is distributed in the hope that it will be useful,
16 **      but WITHOUT ANY WARRANTY; without even the implied warranty of
17 **      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 **      General Public License for more details.
19 **      \endlegal
20 */
21 /* ========================================================================= */
22
23 /* === S T A R T =========================================================== */
24
25 #ifndef __SYNFIG_STUDIO_WIDGET_DEFAULTS_H
26 #define __SYNFIG_STUDIO_WIDGET_DEFAULTS_H
27
28 /* === H E A D E R S ======================================================= */
29
30 #include <gtkmm/drawingarea.h>
31 #include <gtkmm/table.h>
32 #include <synfig/gradient.h>
33 #include "widget_gradient.h"
34 #include <gtkmm/tooltips.h>
35
36 /* === M A C R O S ========================================================= */
37
38 /* === T Y P E D E F S ===================================================== */
39
40 /* === C L A S S E S & S T R U C T S ======================================= */
41
42 namespace Gtk { class HScale; }
43
44 namespace studio {
45
46 class Widget_Brush;
47 class Widget_Color;
48 class Widget_Distance;
49 class Widget_Enum;
50
51 class Widget_Defaults : public Gtk::Table
52 {
53         Widget_Brush *widget_brush;
54         Widget_Color *widget_fg_color;
55         Widget_Color *widget_bg_color;
56         Widget_Distance *widget_bline_width;
57         Widget_Gradient *widget_gradient;
58         Widget_Enum     *widget_blend_method;
59         Widget_Enum     *widget_interpolation;
60         Gtk::HScale *widget_opacity;
61
62         void fg_color_refresh();
63         void bg_color_refresh();
64         void gradient_refresh();
65         void bline_width_refresh();
66         void interpolation_refresh();
67
68         void on_bline_width_changed();
69         void on_fg_color_clicked();
70         void on_bg_color_clicked();
71         void on_swap_color_clicked();
72         void on_reset_color_clicked();
73         void on_gradient_clicked();
74         void on_interpolation_changed();
75
76         void blend_method_refresh();
77         void on_blend_method_changed();
78
79         void opacity_refresh();
80         void on_opacity_changed();
81
82         Gtk::Tooltips tooltips_;
83
84 public:
85
86         Widget_Defaults();
87
88         ~Widget_Defaults();
89
90 //      bool redraw(GdkEventExpose*bleh=NULL);
91
92 //      bool on_event(GdkEvent *event);
93 }; // END of class BlackLevelSelector
94
95 }; // END of namespace studio
96
97 /* === E N D =============================================================== */
98
99 #endif