1 /*! ========================================================================
3 ** Template Header File
4 ** $Id: renddesc.h,v 1.1.1.1 2005/01/07 03:34:36 darco Exp $
6 ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
8 ** This package is free software; you can redistribute it and/or
9 ** modify it under the terms of the GNU General Public License as
10 ** published by the Free Software Foundation; either version 2 of
11 ** the License, or (at your option) any later version.
13 ** This package is distributed in the hope that it will be useful,
14 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
15 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 ** General Public License for more details.
18 ** === N O T E S ===========================================================
20 ** ========================================================================= */
22 /* === S T A R T =========================================================== */
24 #ifndef __SYNFIG_GTKMM_RENDDESC_H
25 #define __SYNFIG_GTKMM_RENDDESC_H
27 /* === H E A D E R S ======================================================= */
29 #include <gtkmm/table.h>
30 #include <gtkmm/frame.h>
31 #include <synfig/renddesc.h>
32 #include <gtkmm/spinbutton.h>
33 #include <gtkmm/adjustment.h>
34 #include <gtkmm/checkbutton.h>
35 #include "widget_vector.h"
36 #include "widget_time.h"
38 /* === M A C R O S ========================================================= */
40 /* === T Y P E D E F S ===================================================== */
42 /* === C L A S S E S & S T R U C T S ======================================= */
46 class Widget_RendDesc : public Gtk::Table
48 synfig::RendDesc rend_desc_;
49 sigc::signal<void> signal_changed_;
51 Gtk::Adjustment adjustment_width;
52 Gtk::Adjustment adjustment_height;
53 Gtk::Adjustment adjustment_xres;
54 Gtk::Adjustment adjustment_yres;
55 Gtk::Adjustment adjustment_phy_width;
56 Gtk::Adjustment adjustment_phy_height;
57 Gtk::Adjustment adjustment_fps;
58 //Gtk::Adjustment adjustment_start_time;
59 //Gtk::Adjustment adjustment_end_time;
60 //Gtk::Adjustment adjustment_start_frame;
61 //Gtk::Adjustment adjustment_end_frame;
62 Gtk::Adjustment adjustment_span;
64 Gtk::SpinButton *entry_width;
65 Gtk::SpinButton *entry_height;
66 Gtk::SpinButton *entry_xres;
67 Gtk::SpinButton *entry_yres;
68 Gtk::SpinButton *entry_phy_width;
69 Gtk::SpinButton *entry_phy_height;
70 Gtk::SpinButton *entry_fps;
71 // Gtk::SpinButton *entry_start_time;
72 // Gtk::SpinButton *entry_end_time;
73 // Gtk::SpinButton *entry_start_frame;
74 // Gtk::SpinButton *entry_end_frame;
75 Gtk::SpinButton *entry_span;
77 Gtk::CheckButton *toggle_px_aspect;
78 Gtk::CheckButton *toggle_px_width;
79 Gtk::CheckButton *toggle_px_height;
81 Gtk::CheckButton *toggle_im_aspect;
82 Gtk::CheckButton *toggle_im_width;
83 Gtk::CheckButton *toggle_im_height;
84 Gtk::CheckButton *toggle_im_span;
86 Gtk::Table *time_table;
87 Gtk::Frame *time_frame;
89 Widget_Vector *entry_tl;
90 Widget_Vector *entry_br;
92 Widget_Vector *entry_focus;
94 Widget_Time *entry_start_time;
95 Widget_Time *entry_end_time;
97 mutable int update_lock;
102 UpdateLock(int &locked):locked(locked){locked++;}
103 ~UpdateLock(){locked--;}
108 sigc::signal<void> &signal_changed() { return signal_changed_; }
113 //! Sets the RendDesc
114 void set_rend_desc(const synfig::RendDesc &rend_desc);
116 //! Applies the given RendDesc to the current RendDesc
117 void apply_rend_desc(const synfig::RendDesc &rend_desc);
119 //! Retrieves the current RendDesc
120 const synfig::RendDesc &get_rend_desc();
122 void disable_time_section();
124 void enable_time_section();
129 void on_width_changed();
130 void on_height_changed();
131 void on_xres_changed();
132 void on_yres_changed();
133 void on_phy_width_changed();
134 void on_phy_height_changed();
135 void on_tl_changed();
136 void on_br_changed();
137 void on_fps_changed();
138 void on_start_time_changed();
139 void on_end_time_changed();
140 //void on_start_frame_changed();
141 //void on_end_frame_changed();
142 void on_lock_changed();
143 void on_focus_changed();
144 void on_span_changed();
147 }; // END of namespace studio
149 /* === E N D =============================================================== */