Add optional callback to Label Options
[xboard.git] / xoptions.c
index ee055f1..ae20ee1 100644 (file)
@@ -525,6 +525,8 @@ MemoEvent(GtkWidget *widget, GdkEvent *event, gpointer gdata)
     gboolean res;
     gint index, x, y;
 
+    if(memo->type == Label) { ((ButtonCallback*) memo->target)(memo->value); return TRUE; } // only clock widgets use this
+
     switch(event->type) { // figure out what's up
        case GDK_MOTION_NOTIFY:
            f = 0;
@@ -1215,7 +1217,11 @@ GenericPopUp (Option *option, char *title, DialogClass dlgNr, DialogClass parent
                 gtk_container_add(GTK_CONTAINER(frame), label);
                label = frame;
            }
-            Pack(hbox, table, label, left, left+3, top);                       
+            Pack(hbox, table, label, left, left+3, top);
+           if(option[i].target) { // allow user to specify event handler for button presses
+               gtk_widget_add_events(GTK_WIDGET(label), GDK_BUTTON_PRESS_MASK);
+               g_signal_connect(label, "button-press-event", G_CALLBACK(MemoEvent), (gpointer) &option[i]);
+           }
            break;
           case SaveButton:
           case Button: