static int gtkCanvasSetDYAttrib(Ihandle* ih, const char *value) { if (ih->data->sb & IUP_SB_VERT) { double ymin, ymax, liney; float dy; int value_changed; GtkAdjustment* sb_vert = gtk_scrolled_window_get_vadjustment(gtkCanvasGetScrolledWindow(ih)); if (!sb_vert) return 1; if (!iupStrToFloat(value, &dy)) return 1; ymin = iupAttribGetFloat(ih, "YMIN"); ymax = iupAttribGetFloat(ih, "YMAX"); if (!iupAttribGet(ih,"LINEY")) { liney = dy/10; if (liney==0) liney = 1; } else liney = iupAttribGetFloat(ih,"LINEY"); #if GTK_CHECK_VERSION(2, 14, 0) { double page_size = dy; double dvalue = gtk_adjustment_get_value(sb_vert); value_changed = gtkCanvasCheckScroll(ymin, ymax, &page_size, &dvalue); gtk_adjustment_configure(sb_vert, dvalue, ymin, ymax, liney, page_size, dy); } #else sb_vert->lower = ymin; sb_vert->upper = ymax; sb_vert->step_increment = liney; sb_vert->page_size = dy; value_changed = gtkCanvasCheckScroll(ymin, ymax, &sb_vert->page_size, &sb_vert->value); sb_vert->page_increment = sb_vert->page_size; gtk_adjustment_changed(sb_vert); #endif if (value_changed) gtk_adjustment_value_changed(sb_vert); } return 1; }
static int gtkCanvasSetDXAttrib(Ihandle* ih, const char *value) { if (ih->data->sb & IUP_SB_HORIZ) { double xmin, xmax, linex; float dx; int value_changed; GtkAdjustment* sb_horiz = gtk_scrolled_window_get_hadjustment(gtkCanvasGetScrolledWindow(ih)); if (!sb_horiz) return 1; if (!iupStrToFloat(value, &dx)) return 1; xmin = iupAttribGetFloat(ih, "XMIN"); xmax = iupAttribGetFloat(ih, "XMAX"); if (!iupAttribGet(ih,"LINEX")) { linex = dx/10; if (linex==0) linex = 1; } else linex = iupAttribGetFloat(ih,"LINEX"); #if GTK_CHECK_VERSION(2, 14, 0) { double page_size = dx; double dvalue = gtk_adjustment_get_value(sb_horiz); value_changed = gtkCanvasCheckScroll(xmin, xmax, &page_size, &dvalue); gtk_adjustment_configure(sb_horiz, dvalue, xmin, xmax, linex, page_size, dx); } #else sb_horiz->lower = xmin; sb_horiz->upper = xmax; sb_horiz->step_increment = linex; sb_horiz->page_size = dx; value_changed = gtkCanvasCheckScroll(xmin, xmax, &sb_horiz->page_size, &sb_horiz->value); sb_horiz->page_increment = sb_horiz->page_size; gtk_adjustment_changed(sb_horiz); #endif if (value_changed) gtk_adjustment_value_changed(sb_horiz); } return 1; }
static int gtkCanvasSetDYAttrib(Ihandle* ih, const char *value) { if (ih->data->sb & IUP_SB_VERT) { double ymin, ymax, liney; float dy; int value_changed; GtkAdjustment* sb_vert_adjust; GtkWidget* sb_vert = (GtkWidget*)iupAttribGet(ih, "_IUPGTK_SBVERT"); if (!sb_vert) return 1; if (!iupStrToFloat(value, &dy)) return 1; ymin = iupAttribGetFloat(ih, "YMIN"); ymax = iupAttribGetFloat(ih, "YMAX"); if (!iupAttribGet(ih,"LINEY")) { liney = dy/10; if (liney==0) liney = 1; } else liney = iupAttribGetFloat(ih,"LINEY"); sb_vert_adjust = gtk_range_get_adjustment(GTK_RANGE(sb_vert)); if (dy >= (ymax-ymin)) { if (iupAttribGetBoolean(ih, "YAUTOHIDE")) { if (iupgtkIsVisible(sb_vert)) { gtk_widget_hide(sb_vert); gtkCanvasUpdateChildLayout(ih); } } else gtk_widget_set_sensitive(sb_vert, FALSE); ih->data->posy = (float)ymin; gtkCanvasAdjustmentSetValue(ih, sb_vert_adjust, ymin); return 1; } else { if (!iupgtkIsVisible(sb_vert)) { gtk_widget_show(sb_vert); gtkCanvasUpdateChildLayout(ih); } gtk_widget_set_sensitive(sb_vert, TRUE); } #if GTK_CHECK_VERSION(2, 14, 0) { double page_size = dy; double dvalue = gtk_adjustment_get_value(sb_vert_adjust); value_changed = gtkCanvasCheckScroll(ymin, ymax, &page_size, &dvalue); gtk_adjustment_configure(sb_vert_adjust, dvalue, ymin, ymax, liney, page_size, dy); } #else { sb_vert_adjust->lower = ymin; sb_vert_adjust->upper = ymax; sb_vert_adjust->step_increment = liney; sb_vert_adjust->page_size = dy; value_changed = gtkCanvasCheckScroll(ymin, ymax, &sb_vert_adjust->page_size, &sb_vert_adjust->value); sb_vert_adjust->page_increment = sb_vert_adjust->page_size; gtk_adjustment_changed(sb_vert_adjust); } #endif if (value_changed) gtk_adjustment_value_changed(sb_vert_adjust); } return 1; }
static int gtkCanvasSetDXAttrib(Ihandle* ih, const char *value) { if (ih->data->sb & IUP_SB_HORIZ) { double xmin, xmax, linex; float dx; int value_changed; GtkAdjustment* sb_horiz_adjust; GtkWidget* sb_horiz = (GtkWidget*)iupAttribGet(ih, "_IUPGTK_SBHORIZ"); if (!sb_horiz) return 1; if (!iupStrToFloat(value, &dx)) return 1; xmin = iupAttribGetFloat(ih, "XMIN"); xmax = iupAttribGetFloat(ih, "XMAX"); if (!iupAttribGet(ih,"LINEX")) { linex = dx/10; if (linex==0) linex = 1; } else linex = iupAttribGetFloat(ih,"LINEX"); sb_horiz_adjust = gtk_range_get_adjustment(GTK_RANGE(sb_horiz)); if (dx >= (xmax-xmin)) { if (iupAttribGetBoolean(ih, "XAUTOHIDE")) { if (iupgtkIsVisible(sb_horiz)) { gtk_widget_hide(sb_horiz); gtkCanvasUpdateChildLayout(ih); } } else gtk_widget_set_sensitive(sb_horiz, FALSE); ih->data->posx = (float)xmin; gtkCanvasAdjustmentSetValue(ih, sb_horiz_adjust, xmin); return 1; } else { if (!iupgtkIsVisible(sb_horiz)) { gtk_widget_show(sb_horiz); gtkCanvasUpdateChildLayout(ih); } gtk_widget_set_sensitive(sb_horiz, TRUE); } #if GTK_CHECK_VERSION(2, 14, 0) { double page_size = dx; double dvalue = gtk_adjustment_get_value(sb_horiz_adjust); value_changed = gtkCanvasCheckScroll(xmin, xmax, &page_size, &dvalue); gtk_adjustment_configure(sb_horiz_adjust, dvalue, xmin, xmax, linex, page_size, dx); } #else { sb_horiz_adjust->lower = xmin; sb_horiz_adjust->upper = xmax; sb_horiz_adjust->step_increment = linex; sb_horiz_adjust->page_size = dx; value_changed = gtkCanvasCheckScroll(xmin, xmax, &sb_horiz_adjust->page_size, &sb_horiz_adjust->value); sb_horiz_adjust->page_increment = sb_horiz_adjust->page_size; gtk_adjustment_changed(sb_horiz_adjust); } #endif if (value_changed) gtk_adjustment_value_changed(sb_horiz_adjust); } return 1; }