eb05362005-11-05Henrik Grubbström (Grubba) /* -*- C -*- */
1a05542005-07-28Martin Nilsson class GTK2.Adjustment; inherit GTK2.Data; //! The GTK2.Adjustment object represents a value which has an associated //! lower and upper bound, together with step and page increments, and //! a page size. It is used within several GTK2+ widgets, including //! GtkSpinButton, GtkViewport, and GtkRange (which is a base class for //! GtkHScrollbar, GtkVScrollbar, GtkHScale, and GtkVScale). //! <p> //! The GtkAdjustment object does not update the value itself. Instead //! it is left up to the owner of the GtkAdjustment to control the //! value. //! </p><p> //! The owner of the GtkAdjustment typically calls the value_changed() //! and changed() functions after changing the value or its //! bounds. This results in the emission of the "value_changed" or //! "changed" signal respectively. //! </p> //! Properties: //! float lower //! float page-increment //! float page-size //! float step-increment //! float upper //! float value signal changed; //! The adjustment changed in some way signal value_changed; //! The value changed
3d76632005-11-03Lance Dillon void create(float|mapping(string:mixed)|void value_or_props,
1a05542005-07-28Martin Nilsson  ?float lower, ?float upper, ?float step_increment, ?float page_increment,
3d76632005-11-03Lance Dillon  ?float page_size)
1a05542005-07-28Martin Nilsson //! The value argument is the initial value you want to give to the //! adjustment, usually corresponding to the topmost or leftmost //! position of an adjustable widget. The lower argument specifies the //! lowest value which the adjustment can hold. The step_increment //! argument specifies the "smaller" of the two increments by which //! the user can change the value, while the page_increment is the //! "larger" one. The page_size argument usually corresponds somehow //! to the visible area of a panning widget. The upper argument is //! used to represent the bottom most or right most coordinate in a //! panning widget's child. Therefore it is not always the largest //! number that value can take, since the page_size of such widgets is //! usually non-zero. //! //! All values are optional, they default to 0.0. //! For most widgets the unit is pixels.
3d76632005-11-03Lance Dillon {
ba9e802006-02-27Martin Stjernholm  pgtk2_verify_not_inited(); pgtk2_verify_setup();
3d76632005-11-03Lance Dillon  if (args) { GtkObject *ga;
017b572011-10-28Henrik Grubbström (Grubba)  if (TYPEOF(Pike_sp[-args]) == PIKE_T_FLOAT) {
3d76632005-11-03Lance Dillon  FLOAT_TYPE val,lower,upper,step_inc,page_inc,page_size; val=lower=upper=step_inc=page_inc=page_size=0.0;
96f5f42018-08-05Martin Nilsson  get_all_args(NULL,args,"%f.%f%f%f%f%f",&val,&lower,&upper,
3d76632005-11-03Lance Dillon  &step_inc,&page_inc,&page_size); ga=gtk_adjustment_new(val,lower,upper,step_inc,page_inc,page_size); THIS->obj=G_OBJECT(ga); } else { INIT_WITH_PROPS(GTK_TYPE_ADJUSTMENT); }
ba9e802006-02-27Martin Stjernholm  pgtk2_pop_n_elems(args);
3d76632005-11-03Lance Dillon  } else { GtkObject *ga; ga=gtk_adjustment_new(0.0,0.0,0.0,0.0,0.0,0.0); THIS->obj=G_OBJECT(ga); }
ba9e802006-02-27Martin Stjernholm  pgtk2__init_this_object();
3d76632005-11-03Lance Dillon }
1a05542005-07-28Martin Nilsson  float get_value(); //! Gets the current value. void set_value(float to); //! Sets the value. The value is clamped to lie between lower and upper. //! <p> //! Note that for adjustments which are used in a W(Scrollbar), the effective //! range of allowed values goes from lower to upper-page_size. void clamp_page(float lower, float upper); //! Updates the W(Adjustment) value to ensure that the range between lower and //! upper is in the current page (i.e. between value and value+page_size). If //! the range is larger than the page size, then only the start of it will be //! in the current page. A "changed" signal will be emitted if the value is //! changed. void changed(); //! Emites a "changed" signal. void value_changed(); //! Emits a "value-changed" signal.