34#include <boost/lexical_cast.hpp>
43using boost::lexical_cast;
76 , editable(allow_edit)
152 clock_base.add_events(Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK);
153 clock_base.signal_button_release_event().connect(bind(mem_fun(
170 Widget::set_name(
name);
206 const Gdk::EventMask eventMask =
207 Gdk::BUTTON_PRESS_MASK|
208 Gdk::BUTTON_RELEASE_MASK|
210 Gdk::KEY_RELEASE_MASK|
211 Gdk::FOCUS_CHANGE_MASK|
212 Gdk::POINTER_MOTION_MASK|
234 auto connect_motion_event = [=,
this](Gtk::EventBox& guiElm,
Field fieldID)
237 guiElm.signal_motion_notify_event().connect (handlerSlot);
252 auto connect_button_press = [=,
this](Gtk::EventBox& guiElm,
Field fieldID)
255 guiElm.signal_button_press_event().connect (handlerSlot);
270 auto connect_button_release = [=,
this](Gtk::EventBox& guiElm,
Field fieldID)
273 guiElm.signal_button_release_event().connect (handlerSlot);
288 auto connect_scroll_event = [=,
this](Gtk::EventBox& guiElm,
Field fieldID)
291 guiElm.signal_scroll_event().connect (handlerSlot);
306 auto connect_key_press = [=,
this](Gtk::EventBox& guiElm,
Field fieldID)
309 guiElm.signal_key_press_event().connect (handlerSlot);
324 auto connect_key_release = [=,
this](Gtk::EventBox& guiElm,
Field fieldID)
327 guiElm.signal_key_release_event().connect (handlerSlot);
342 auto connect_focus_gain = [=,
this](Gtk::EventBox& guiElm,
Field fieldID)
345 guiElm.signal_focus_in_event().connect (handlerSlot);
360 auto connect_focus_loss = [=,
this](Gtk::EventBox& guiElm,
Field fieldID)
363 guiElm.signal_focus_out_event().connect (handlerSlot);
378 clock_base.signal_focus_in_event().connect(mem_fun(
455 snprintf(buf,
sizeof(buf),
"%u",
uint(123));
485 int hrs = getHours(when);
486 int mins = getMins (when);
487 float secs = getSecs (when);
491 sprintf(buf,
"%02d", hrs);
498 sprintf(buf,
"%02d", mins);
505 sprintf(buf,
"%06.3f", secs);
517 int smpte_negative = 0;
518 int smpte_hours = getHours(when);
519 int smpte_minutes = getMins(when);
520 int smpte_seconds = getSecs(when);
521 int smpte_frames = 0;
533 sprintf(buf,
"-%02d", smpte_hours);
537 sprintf(buf,
" %02d", smpte_hours);
546 sprintf(buf,
"%02d", smpte_minutes);
553 sprintf(buf,
"%02d", smpte_seconds);
560 sprintf(buf,
"%02d", smpte_frames);
601 Gtk::Label* label = 0;
604 bool move_on =
false;
639 switch (ev->keyval) {
724 string existing = label->get_text();
731 new_text += new_char;
732 label->set_text(new_text);
802 switch (ev->keyval) {
912 gdk_pointer_ungrab(GDK_CURRENT_TIME);
915 or (ev->state & GDK_SHIFT_MASK) == GDK_SHIFT_MASK)
996 gdk_pointer_grab(ev->window,
false ,
997 GdkEventMask( Gdk::POINTER_MOTION_MASK | Gdk::BUTTON_PRESS_MASK |Gdk::BUTTON_RELEASE_MASK),
1035 switch (ev->direction) {
1048 case GDK_SCROLL_DOWN:
1079 float pixel_frame_scale_factor = 0.2f;
1092 double y_delta = ev->y -
drag_y;
1094 drag_accum += y_delta*pixel_frame_scale_factor;
1242 sprintf(buf,
"%02d",
int(
framerate - 1));
1306 using namespace Menu_Helpers;
1308 MenuList& ops_items =
ops_menu->items();
1309 ops_menu->set_name (
"LumieraContextMenu");
1400 gint hpadding, gint vpadding)
1406 w.set_size_request(width + hpadding, height + vpadding);
1412 int& width,
int& height)
1414 Pango::Rectangle ink_rect = layout->get_ink_extents ();
1416 width = (ink_rect.get_width() + PANGO_SCALE / 2) / PANGO_SCALE;
1417 height = (ink_rect.get_height() + PANGO_SCALE / 2) / PANGO_SCALE;
basic constant internal time value.
static const raw_time_64 SCALE
Number of micro ticks (µs) per second as basic time scale.
a mutable time value, behaving like a plain number, allowing copy and re-accessing
Lumiera's internal time value datatype.
int64_t raw_time_64
Raw µ-tick time representation used in Lumiera.
Lumiera GTK UI implementation root.
a family of time value like entities and their relationships.