Next: , Previous: Package_Gtk.Accel_Label, Up: Top



Package Gtk.Adjustment

This object represents an adjustable bounded value. It is used in many other widgets that have such internal values, like Gtk_Scrollbar, Gtk_Spin_Button, Gtk_Range, ... Modifying the value of these widgets is done through their associated adjustments.

The modification of the value is left to the user, who should call Value_Changed or Changed to emit the relevant signals.

The meaning of the most important fields can be explained on the following figure (imagine this is a scrollbar):

     
         [-------|=================|-------------------]
        lower    value        value + page_size       upper

Widget Hierarchy
     GObject                       (see Package_Glib.Object)
     Gtk_Object                    (see Package_Gtk.Object)
        \___ Gtk_Adjustment        (see Package_Gtk.Adjustment)
     

Signals

Subprograms
procedure Gtk_New (Adjustment : out Gtk_Adjustment; Value : Gdouble; Lower : Gdouble; Upper : Gdouble; Step_Increment : Gdouble; Page_Increment : Gdouble; Page_Size : Gdouble);
Create a new adjustment.
Value is the initial value of the adjustment. It must be in the range (Lower .. Upper) and the adjustment's value will never be outside this range. Step_Increment is the value used to make minor adjustments, such as when the user clicks on the arrows of a scrollbar. Page_Increment is used to make major adjustments, such as when the user clicks in the through on a scrollbar. Page_Size is the size of the area that is currently visible (for instance in a Gtk_Scrolled_Window).

function Get_Type return Gtk.Gtk_Type;
Return the internal value associated with a Gtk_Adjustment.

Read functions


function Get_Value (Adjustment : access Gtk_Adjustment_Record) return Gdouble;
Return the current value of the adjustment.

function Get_Lower (Adjustment : access Gtk_Adjustment_Record) return Gdouble;
Return the lower bound of the adjustment.

function Get_Upper (Adjustment : access Gtk_Adjustment_Record) return Gdouble;
Return the upper bound of the adjustment.

function Get_Step_Increment (Adjustment : access Gtk_Adjustment_Record) return Gdouble;
Return the step increment of the adjustment.

function Get_Page_Increment (Adjustment : access Gtk_Adjustment_Record) return Gdouble;
Return the page increment of the adjustment.

function Get_Page_Size (Adjustment : access Gtk_Adjustment_Record) return Gdouble;
Return the page size of the adjustment.

Write functions


procedure Set_Value (Adjustment : access Gtk_Adjustment_Record; Value : Gdouble);
Modify the current value of the adjustment.
You do not need to call Value_Changed after modifying this value, this is done automatically.

procedure Set_Lower (Adjustment : access Gtk_Adjustment_Record; Lower : Gdouble);
Modify the lower bound of the adjustment.
You should call Changed after modifying this value.

procedure Set_Upper (Adjustment : access Gtk_Adjustment_Record; Upper : Gdouble);
Modify the upper bound of the adjustment.
You should call Changed after modifying this value.

procedure Set_Step_Increment (Adjustment : access Gtk_Adjustment_Record; Step_Increment : Gdouble);
Modify the step increment of the adjustment.
You should call Changed after modifying this value.

procedure Set_Page_Increment (Adjustment : access Gtk_Adjustment_Record; Page_Increment : Gdouble);
Modify the page increment of the adjustment.
You should call Changed after modifying this value.

procedure Set_Page_Size (Adjustment : access Gtk_Adjustment_Record; Page_Size : Gdouble);
Modify the page size of the adjustment.
You should call Changed after modifying this value.

Misc functions


procedure Clamp_Page (Adjustment : access Gtk_Adjustment_Record; Lower : Gdouble; Upper : Gdouble);
Update the 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 "value_changed" signal will be emitted if the value is changed.

Signals emission


procedure Changed (Adjustment : access Gtk_Adjustment_Record);
Emit the "changed" signal on Adjustment.
This warns any listener that some field other than the value has been changed.

procedure Value_Changed (Adjustment : access Gtk_Adjustment_Record);
Emit the "value_changed" signal on Adjustment.
This warns any listener that the value has been changed.

Example

         [-------|=================|-------------------]
        lower    value        value + page_size       upper