static gboolean gtkToggleEnterLeaveEvent(GtkWidget *widget, GdkEventCrossing *evt, Ihandle *ih) { /* Used only when FLAT=Yes */ iupgtkEnterLeaveEvent(widget, evt, ih); (void)widget; if (gtkToggleGetCheck(ih) == 1) gtk_button_set_relief((GtkButton*)ih->handle, GTK_RELIEF_NORMAL); else { if (evt->type == GDK_ENTER_NOTIFY) gtk_button_set_relief((GtkButton*)ih->handle, GTK_RELIEF_NORMAL); else if (evt->type == GDK_LEAVE_NOTIFY) gtk_button_set_relief((GtkButton*)ih->handle, GTK_RELIEF_NONE); } return FALSE; }
static void gtkToggleToggled(GtkToggleButton *widget, Ihandle* ih) { IFni cb; int check; if (iupAttribGet(ih, "_IUPGTK_IGNORE_TOGGLE")) return; check = gtkToggleGetCheck(ih); if (ih->data->type == IUP_TOGGLE_IMAGE) gtkToggleUpdateImage(ih, iupdrvIsActive(ih), check); cb = (IFni)IupGetCallback(ih, "ACTION"); if (cb && cb(ih, check) == IUP_CLOSE) IupExitLoop(); iupBaseCallValueChangedCb(ih); (void)widget; }
static int gtkToggleSetValueAttrib(Ihandle* ih, const char* value) { if (iupStrEqualNoCase(value,"NOTDEF")) gtk_toggle_button_set_inconsistent((GtkToggleButton*)ih->handle, TRUE); else { gtk_toggle_button_set_inconsistent((GtkToggleButton*)ih->handle, FALSE); /* This action causes the toggled signal to be emitted. */ iupAttribSetStr(ih, "_IUPGTK_IGNORE_TOGGLE", "1"); if (iupStrBoolean(value)) gtk_toggle_button_set_active((GtkToggleButton*)ih->handle, TRUE); else gtk_toggle_button_set_active((GtkToggleButton*)ih->handle, FALSE); if (ih->data->type == IUP_TOGGLE_IMAGE) gtkToggleUpdateImage(ih, iupdrvIsActive(ih), gtkToggleGetCheck(ih)); iupAttribSetStr(ih, "_IUPGTK_IGNORE_TOGGLE", NULL); } return 0; }
static char* gtkToggleGetValueAttrib(Ihandle* ih) { return iupStrReturnChecked(gtkToggleGetCheck(ih)); }