26 #ifndef STAGE_WIDGET_TIMECODE_WIDGET_H 27 #define STAGE_WIDGET_TIMECODE_WIDGET_H 32 #include <gtkmm/box.h> 33 #include <gtkmm/menu.h> 34 #include <gtkmm/eventbox.h> 35 #include <gtkmm/label.h> 36 #include <gtkmm/frame.h> 74 Mode mode()
const {
return _mode; }
78 void set(
Time when,
bool force =
false);
81 void set_widget_name(
string);
83 string name()
const {
return _name; }
85 Time current_time (
Time position = Time::ZERO)
const;
86 Time current_duration (
Time position = Time::ZERO)
const;
88 sigc::signal<void> ValueChanged;
89 sigc::signal<void> ChangeAborted;
91 static sigc::signal<void> ModeChanged;
94 static bool has_focus() {
return _has_focus; }
106 Gtk::HBox smpte_packer_hbox;
107 Gtk::HBox smpte_packer;
109 Gtk::HBox minsec_packer_hbox;
110 Gtk::HBox minsec_packer;
112 Gtk::HBox frames_packer_hbox;
113 Gtk::HBox frames_packer;
126 Gtk::EventBox audio_frames_ebox;
127 Gtk::Label audio_frames_label;
131 Gtk::EventBox hours_ebox;
132 Gtk::EventBox minutes_ebox;
133 Gtk::EventBox seconds_ebox;
134 Gtk::EventBox frames_ebox;
136 Gtk::EventBox ms_hours_ebox;
137 Gtk::EventBox ms_minutes_ebox;
138 Gtk::EventBox ms_seconds_ebox;
140 Gtk::Label hours_label;
141 Gtk::Label minutes_label;
142 Gtk::Label seconds_label;
143 Gtk::Label frames_label;
144 Gtk::Label colon1, colon2, colon3;
146 Gtk::Label ms_hours_label;
147 Gtk::Label ms_minutes_label;
148 Gtk::Label ms_seconds_label;
149 Gtk::Label colon4, colon5;
151 Gtk::EventBox clock_base;
152 Gtk::Frame clock_frame;
175 bool field_motion_notify_event (GdkEventMotion *ev, Field);
176 bool field_button_press_event (GdkEventButton *ev, Field);
177 bool field_button_release_event (GdkEventButton *ev, Field);
178 bool field_button_scroll_event (GdkEventScroll *ev, Field);
179 bool field_key_press_event (GdkEventKey *ev, Field);
180 bool field_key_release_event (GdkEventKey *ev, Field);
182 bool field_focus_loss_event (GdkEventFocus*, Field);
183 bool drop_focus_handler (GdkEventFocus *ev);
185 void set_smpte (
Time,
bool);
186 void set_minsec (
Time,
bool);
187 void set_frames (
Time,
bool);
189 int get_frames (Field,
Time pos = Time::ZERO,
int dir=1);
191 void smpte_sanitize_display();
192 Time smpte_time_from_display()
const;
193 Time minsec_time_from_display()
const;
194 Time audio_time_from_display()
const;
196 void build_ops_menu();
199 void smpte_offset_changed();
200 void set_size_requests();
202 static const uint field_length[(int)VFrames+1];
203 static bool _has_focus;
205 void set_size_request_to_display_given_text (Gtk::Widget &w,
const gchar *text, gint hpadding, gint vpadding);
206 void get_ink_pixel_size (Glib::RefPtr<Pango::Layout> layout,
int& width,
int& height);
a mutable time value, behaving like a plain number, allowing copy and re-accessing ...
Lumiera's internal time value datatype.
Lumiera GTK UI implementation root.
a family of time value like entities and their relationships.
basic constant internal time value.
A set of basic GTK includes for the UI.