TimeEntry::TimeEntry ( Glib::ustring text ) : Gtk::Entry() { set_max_length(4); set_width_chars(4); set_text(text); signal_changed().connect(sigc::mem_fun(*this, &TimeEntry::on_change)); signal_focus_out_event().connect(sigc::mem_fun(*this, &TimeEntry::on_lose_focus)); }
void set( unsigned int val ) { char buf[256] = ""; char* special = gdk_keyval_name( val ); char* p_buf = &buf[strlen(buf)]; if (special) snprintf( p_buf, sizeof buf - (p_buf - buf), "%s", special ); else snprintf( p_buf, sizeof buf - (p_buf - buf), "'%c'", (char)val ); set_text( buf ); int width = strlen(buf); set_width_chars( 1 <= width ? width : 1 ); }