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 |
---|
procedure Handler (Adjustment : access Gtk_Adjustment_Record'Class);
This signal is emitted every time one of the parameters is modified, except the value.
procedure Handler (Adjustment : access Gtk_Adjustment_Record'Class);
This signal is emitted every time the value of the adjustment is modified
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