creation: /** GtkLabel digital clock ;) **/ widget = gtk_label_new ("00:00:00"); gtk_widget_show (widget); object = kiba_object_new_for_widget (widget); SET_FLAG (KIBA_OBJECT(object)->props, KIBA_OBJECT_VISIBLE); SET_FLAG (KIBA_OBJECT(object)->props, KIBA_OBJECT_MOVEABLE); SET_FLAG (KIBA_OBJECT(object)->props, KIBA_OBJECT_PRELIGHTABLE); SET_FLAG (KIBA_OBJECT(object)->props, KIBA_OBJECT_BOUNCEABLE); SET_FLAG (KIBA_OBJECT(object)->props, KIBA_OBJECT_PULSEABLE); SET_FLAG (KIBA_OBJECT(object)->props, KIBA_OBJECT_ROTATEABLE); SET_FLAG (KIBA_OBJECT(object)->props, KIBA_OBJECT_REFLECTABLE); kiba_object_set_group (KIBA_OBJECT(object), "GtkLabel"); gtk_container_add(GTK_CONTAINER(object), widget); gtk_container_add(GTK_CONTAINER(dock), object); gtk_widget_show(object); kiba_object_set_title (KIBA_OBJECT(object), "GtkLabel"); g_timeout_add (SECOND_INTERVAL, (GSourceFunc) clock_time_handler, widget); timeout: static gint clock_time_handler (gpointer data) { GtkWidget *clock = data; int seconds, minutes, hours, day, month; static time_t systime; struct tm* g_pTime; char date[9]; time (&systime); g_pTime = localtime (&systime); minutes = g_pTime->tm_min; hours = g_pTime->tm_hour; seconds = g_pTime->tm_sec; sprintf (date, "%s%i:%s%i:%s%i", (hours < 10) ? "0" : "", hours, (minutes < 10) ? "0" : "", minutes, (seconds < 10) ? "0" : "", seconds); gtk_label_set_text (GTK_LABEL(clock), date); return TRUE; }