static gboolean gtkCanvasHChangeValue(GtkRange *range, GtkScrollType scroll, double value, Ihandle *ih) { double posx, posy; IFniff cb; double xmin = iupAttribGetFloat(ih, "XMIN"); double xmax = iupAttribGetFloat(ih, "XMAX"); double dx = iupAttribGetFloat(ih, "DX"); if (value < xmin) value = xmin; if (value > xmax-dx) value = xmax-dx; posx = value; ih->data->posx = (float)posx; posy = ih->data->posy; cb = (IFniff)IupGetCallback(ih,"SCROLL_CB"); if (cb) { int op = gtkCanvasScroll2Iup(scroll, 0); if (op == -1) return FALSE; cb(ih, op, (float)posx, (float)posy); } else { IFnff cb = (IFnff)IupGetCallback(ih,"ACTION"); if (cb) cb (ih, (float)posx, (float)posy); } (void)range; return FALSE; }
static gboolean gtkCanvasScrollHorizChangeValue(GtkRange *range, GtkScrollType scroll, double value, Ihandle *ih) { int op = gtkCanvasScroll2Iup(scroll, 0); iupAttribSetInt(ih, "_IUPGTK_SBOP", op); (void)range; (void)value; return FALSE; }