[Contents] [Back] [Prev] [Up] [Next] [Forward]

# 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

- Gtk.Adjustment Widget Hierarchy
- Gtk.Adjustment Signals
- Gtk.Adjustment Subprograms
- Gtk.Adjustment Example

## Widget Hierarchy

    GObject                       (see section Package Glib.Object)
    Gtk_Object                    (see section Package Gtk.Object)
       \___ Gtk_Adjustment        (see section Package Gtk.Adjustment)

## Signals

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

[Contents] [Back] [Prev] [Up] [Next] [Forward]