Base class for widgets which visualize an adjustment.
Widgets that are derived from GtkRange include [classGtk.Scale] and [classGtk.Scrollbar].
Apart from signals for monitoring the parameters of the adjustment, GtkRange provides properties and methods for setting a "fill level" on range widgets. See [methodGtk.Range.set_fill_level].
# Shortcuts and Gestures
The GtkRange slider is draggable. Holding the <kbd>Shift</kbd> key while dragging, or initiating the drag with a long-press will enable the fine-tuning mode.
<group>Numeric/Text Data Entry</group> <gtkada_demo>create_scale.adb</gtkada_demo>
function "+"
(Widget : access Gtk_Range_Record'Class)
return Gtk.Accessible.Gtk_Accessible
function "+"
(Widget : access Gtk_Range_Record'Class)
return Gtk.Accessible_Range.Gtk_Accessible_Range
function "+"
(Widget : access Gtk_Range_Record'Class)
return Gtk.Buildable.Gtk_Buildable
function "+"
(Widget : access Gtk_Range_Record'Class)
return Gtk.Constraint_Target.Gtk_Constraint_Target
function "+"
(Widget : access Gtk_Range_Record'Class)
return Gtk.Orientable.Gtk_Orientable
function "-"
(Interf : Gtk.Accessible.Gtk_Accessible)
return Gtk_Range
function "-"
(Interf : Gtk.Accessible_Range.Gtk_Accessible_Range)
return Gtk_Range
function "-"
(Interf : Gtk.Buildable.Gtk_Buildable)
return Gtk_Range
function "-"
(Interf : Gtk.Constraint_Target.Gtk_Constraint_Target)
return Gtk_Range
function "-"
(Interf : Gtk.Orientable.Gtk_Orientable)
return Gtk_Range
Adjustment_Property : constant Glib.Properties.Property_Object;
Type: Gtk.Adjustment.Gtk_Adjustment The adjustment that is controlled by the range.
procedure Announce
(Self : not null access Gtk_Range_Record;
Message : UTF8_String;
Priority : Gtk.Accessible.Gtk_Accessible_Announcement_Priority)
type Cb_GObject_Gdouble_Void is not null access procedure
(Self : access Glib.Object.GObject_Record'Class;
Value : Gdouble);
type Cb_GObject_Gtk_Scroll_Type_Gdouble_Boolean is not null access function
(Self : access Glib.Object.GObject_Record'Class;
Scroll : Gtk.Enums.Gtk_Scroll_Type;
Value : Gdouble) return Boolean;
type Cb_GObject_Gtk_Scroll_Type_Void is not null access procedure
(Self : access Glib.Object.GObject_Record'Class;
Step : Gtk.Enums.Gtk_Scroll_Type);
type Cb_GObject_Void is not null access procedure
(Self : access Glib.Object.GObject_Record'Class);
type Cb_Gtk_Range_Gdouble_Void is not null access procedure
(Self : access Gtk_Range_Record'Class;
Value : Gdouble);
type Cb_Gtk_Range_Gtk_Scroll_Type_Gdouble_Boolean is not null access function
(Self : access Gtk_Range_Record'Class;
Scroll : Gtk.Enums.Gtk_Scroll_Type;
Value : Gdouble) return Boolean;
type Cb_Gtk_Range_Gtk_Scroll_Type_Void is not null access procedure
(Self : access Gtk_Range_Record'Class;
Step : Gtk.Enums.Gtk_Scroll_Type);
type Cb_Gtk_Range_Void is not null access procedure (Self : access Gtk_Range_Record'Class);
Fill_Level_Property : constant Glib.Properties.Property_Double;
Type: Gdouble The fill level (e.g. prebuffering of a network stream).
function Get_Accessible_Id
(Self : not null access Gtk_Range_Record) return UTF8_String
function Get_Accessible_Parent
(Self : not null access Gtk_Range_Record)
return Gtk.Accessible.Gtk_Accessible
function Get_Accessible_Role
(Self : not null access Gtk_Range_Record)
return Gtk.Accessible.Gtk_Accessible_Role
function Get_Adjustment
(Self : not null access Gtk_Range_Record)
return Gtk.Adjustment.Gtk_Adjustment
Get the adjustment which is the "model" object for GtkRange.
a GtkAdjustment. Has transfer-ownership='none'.
function Get_At_Context
(Self : not null access Gtk_Range_Record)
return Gtk.Atcontext.Gtk_Atcontext
function Get_Bounds
(Self : not null access Gtk_Range_Record;
X : out Glib.Gint;
Y : out Glib.Gint;
Width : out Glib.Gint;
Height : out Glib.Gint) return Boolean
function Get_Fill_Level
(Self : not null access Gtk_Range_Record) return Gdouble
Gets the current position of the fill level indicator.
The current fill level
function Get_First_Accessible_Child
(Self : not null access Gtk_Range_Record)
return Gtk.Accessible.Gtk_Accessible
function Get_Flippable
(Self : not null access Gtk_Range_Record) return Boolean
Gets whether the GtkRange respects text direction. See [methodGtk.Range.set_flippable].
True if the range is flippable
function Get_Inverted
(Self : not null access Gtk_Range_Record) return Boolean
Gets whether the range is inverted. See [methodGtk.Range.set_inverted].
True if the range is inverted
function Get_Next_Accessible_Sibling
(Self : not null access Gtk_Range_Record)
return Gtk.Accessible.Gtk_Accessible
function Get_Orientation
(Self : not null access Gtk_Range_Record)
return Gtk.Enums.Gtk_Orientation
function Get_Platform_State
(Self : not null access Gtk_Range_Record;
State : Gtk.Accessible.Gtk_Accessible_Platform_State) return Boolean
procedure Get_Range_Rect
(Self : not null access Gtk_Range_Record;
Range_Rect : out Gdk.Rectangle.Gdk_Rectangle)
This function returns the area that contains the range's trough, in coordinates relative to Range's origin. This function is useful mainly for GtkRange subclasses.
return location for the range rectangle
function Get_Restrict_To_Fill_Level
(Self : not null access Gtk_Range_Record) return Boolean
Gets whether the range is restricted to the fill level.
True if Range is restricted to the fill level.
function Get_Round_Digits
(Self : not null access Gtk_Range_Record) return Glib.Gint
Gets the number of digits to round the value to when it changes. See [signalGtk.Range::change-value].
the number of digits to round to
function Get_Show_Fill_Level
(Self : not null access Gtk_Range_Record) return Boolean
Gets whether the range displays the fill level graphically.
True if Range shows the fill level.
procedure Get_Slider_Range
(Self : not null access Gtk_Range_Record;
Slider_Start : out Glib.Gint;
Slider_End : out Glib.Gint)
This function returns sliders range along the long dimension, in widget->window coordinates. This function is useful mainly for GtkRange subclasses.
return location for the slider's start
return location for the slider's end
function Get_Slider_Size_Fixed
(Self : not null access Gtk_Range_Record) return Boolean
This function is useful mainly for GtkRange subclasses. See [methodGtk.Range.set_slider_size_fixed].
whether the range's slider has a fixed size.
function Get_Type return Glib.GType
function Get_Value
(Self : not null access Gtk_Range_Record) return Gdouble
Gets the current value of the range.
current value of the range.
type Gtk_Range is access all Gtk_Range_Record'Class;
type Gtk_Range_Record is new Gtk_Widget_Record with null record;
package Implements_Gtk_Accessible is new Glib.Types.Implements
(Gtk.Accessible.Gtk_Accessible, Gtk_Range_Record, Gtk_Range);
package Implements_Gtk_Accessible_Range is new Glib.Types.Implements
(Gtk.Accessible_Range.Gtk_Accessible_Range, Gtk_Range_Record, Gtk_Range);
package Implements_Gtk_Buildable is new Glib.Types.Implements
(Gtk.Buildable.Gtk_Buildable, Gtk_Range_Record, Gtk_Range);
package Implements_Gtk_Constraint_Target is new Glib.Types.Implements
(Gtk.Constraint_Target.Gtk_Constraint_Target, Gtk_Range_Record, Gtk_Range);
package Implements_Gtk_Orientable is new Glib.Types.Implements
(Gtk.Orientable.Gtk_Orientable, Gtk_Range_Record, Gtk_Range);
Inverted_Property : constant Glib.Properties.Property_Boolean;
If True, the direction in which the slider moves is inverted.
procedure On_Adjust_Bounds
(Self : not null access Gtk_Range_Record;
Call : Cb_GObject_Gdouble_Void;
Slot : not null access Glib.Object.GObject_Record'Class;
After : Boolean := False)
Emitted before clamping a value, to give the application a chance to adjust the bounds.
procedure On_Adjust_Bounds
(Self : not null access Gtk_Range_Record;
Call : Cb_Gtk_Range_Gdouble_Void;
After : Boolean := False)
Emitted before clamping a value, to give the application a chance to adjust the bounds.
procedure On_Change_Value
(Self : not null access Gtk_Range_Record;
Call : Cb_GObject_Gtk_Scroll_Type_Gdouble_Boolean;
Slot : not null access Glib.Object.GObject_Record'Class;
After : Boolean := False)
Emitted when a scroll action is performed on a range.
It allows an application to determine the type of scroll event that occurred and the resultant new value. The application can handle the event itself and return True to prevent further processing. Or, by returning False, it can pass the event to other handlers until the default GTK handler is reached.
The value parameter is unrounded. An application that overrides the ::change-value signal is responsible for clamping the value to the desired number of decimal digits; the default GTK handler clamps the value based on [propertyGtk.Range:round-digits].
Callback parameters: -- @param Scroll the type of scroll action that was performed -- @param Value the new value resulting from the scroll action
procedure On_Change_Value
(Self : not null access Gtk_Range_Record;
Call : Cb_Gtk_Range_Gtk_Scroll_Type_Gdouble_Boolean;
After : Boolean := False)
Emitted when a scroll action is performed on a range.
It allows an application to determine the type of scroll event that occurred and the resultant new value. The application can handle the event itself and return True to prevent further processing. Or, by returning False, it can pass the event to other handlers until the default GTK handler is reached.
The value parameter is unrounded. An application that overrides the ::change-value signal is responsible for clamping the value to the desired number of decimal digits; the default GTK handler clamps the value based on [propertyGtk.Range:round-digits].
Callback parameters: -- @param Scroll the type of scroll action that was performed -- @param Value the new value resulting from the scroll action
procedure On_Move_Slider
(Self : not null access Gtk_Range_Record;
Call : Cb_GObject_Gtk_Scroll_Type_Void;
Slot : not null access Glib.Object.GObject_Record'Class;
After : Boolean := False)
Virtual function that moves the slider.
Used for keybindings.
procedure On_Move_Slider
(Self : not null access Gtk_Range_Record;
Call : Cb_Gtk_Range_Gtk_Scroll_Type_Void;
After : Boolean := False)
Virtual function that moves the slider.
Used for keybindings.
procedure On_Value_Changed
(Self : not null access Gtk_Range_Record;
Call : Cb_GObject_Void;
Slot : not null access Glib.Object.GObject_Record'Class;
After : Boolean := False)
Emitted when the range value changes.
procedure On_Value_Changed
(Self : not null access Gtk_Range_Record;
Call : Cb_Gtk_Range_Void;
After : Boolean := False)
Emitted when the range value changes.
procedure Reset_Property
(Self : not null access Gtk_Range_Record;
Property : Gtk.Accessible.Gtk_Accessible_Property)
procedure Reset_Relation
(Self : not null access Gtk_Range_Record;
Relation : Gtk.Accessible.Gtk_Accessible_Relation)
procedure Reset_State
(Self : not null access Gtk_Range_Record;
State : Gtk.Accessible.Gtk_Accessible_State)
Restrict_To_Fill_Level_Property : constant Glib.Properties.Property_Boolean;
Controls whether slider movement is restricted to an upper boundary set by the fill level.
Round_Digits_Property : constant Glib.Properties.Property_Int;
The number of digits to round the value to when it changes.
See [signalGtk.Range::change-value].
procedure Set_Accessible_Parent
(Self : not null access Gtk_Range_Record;
Parent : Gtk.Accessible.Gtk_Accessible;
Next_Sibling : Gtk.Accessible.Gtk_Accessible)
procedure Set_Adjustment
(Self : not null access Gtk_Range_Record;
Adjustment : not null access Gtk.Adjustment.Gtk_Adjustment_Record'Class)
Sets the adjustment to be used as the "model" object for the GtkRange The adjustment indicates the current range value, the minimum and maximum range values, the step/page increments used for keybindings and scrolling, and the page size. The page size is normally 0 for GtkScale and nonzero for GtkScrollbar, and indicates the size of the visible area of the widget being scrolled. The page size affects the size of the scrollbar slider.
a GtkAdjustment
procedure Set_Fill_Level
(Self : not null access Gtk_Range_Record;
Fill_Level : Gdouble)
Set the new position of the fill level indicator. The "fill level" is probably best described by its most prominent use case, which is an indicator for the amount of pre-buffering in a streaming media player. In that use case, the value of the range would indicate the current play position, and the fill level would be the position up to which the file/stream has been downloaded. This amount of prebuffering can be displayed on the range's trough and is themeable separately from the trough. To enable fill level display, use [methodGtk.Range.set_show_fill_level]. The range defaults to not showing the fill level. Additionally, it's possible to restrict the range's slider position to values which are smaller than the fill level. This is controlled by [methodGtk.Range.set_restrict_to_fill_level] and is by default enabled.
the new position of the fill level indicator
procedure Set_Flippable
(Self : not null access Gtk_Range_Record;
Flippable : Boolean)
Sets whether the GtkRange respects text direction. If a range is flippable, it will switch its direction if it is horizontal and its direction is Gtk.Enums.Text_Dir_Rtl. See [methodGtk.Widget.get_direction].
True to make the range flippable
procedure Set_Increments
(Self : not null access Gtk_Range_Record;
Step : Gdouble;
Page : Gdouble)
Sets the step and page sizes for the range. The step size is used when the user clicks the GtkScrollbar arrows or moves a GtkScale via arrow keys. The page size is used for example when moving via Page Up or Page Down keys.
step size
page size
procedure Set_Inverted
(Self : not null access Gtk_Range_Record;
Setting : Boolean)
Sets whether to invert the range. Ranges normally move from lower to higher values as the slider moves from top to bottom or left to right. Inverted ranges have higher values at the top or on the right rather than on the bottom or left.
True to invert the range
procedure Set_Orientation
(Self : not null access Gtk_Range_Record;
Orientation : Gtk.Enums.Gtk_Orientation)
procedure Set_Range
(Self : not null access Gtk_Range_Record;
Min : Gdouble;
Max : Gdouble)
Sets the allowable values in the GtkRange. The range value is clamped to be between Min and Max. (If the range has a non-zero page size, it is clamped between Min and Max - page-size.)
minimum range value
maximum range value
procedure Set_Restrict_To_Fill_Level
(Self : not null access Gtk_Range_Record;
Restrict_To_Fill_Level : Boolean)
Sets whether the slider is restricted to the fill level. See [methodGtk.Range.set_fill_level] for a general description of the fill level concept.
Whether the fill level restricts slider movement.
procedure Set_Round_Digits
(Self : not null access Gtk_Range_Record;
Round_Digits : Glib.Gint)
Sets the number of digits to round the value to when it changes. See [signalGtk.Range::change-value].
the precision in digits, or -1
procedure Set_Show_Fill_Level
(Self : not null access Gtk_Range_Record;
Show_Fill_Level : Boolean)
Sets whether a graphical fill level is show on the trough. See [methodGtk.Range.set_fill_level] for a general description of the fill level concept.
Whether a fill level indicator graphics is shown.
procedure Set_Slider_Size_Fixed
(Self : not null access Gtk_Range_Record;
Size_Fixed : Boolean)
Sets whether the range's slider has a fixed size, or a size that depends on its adjustment's page size. This function is useful mainly for GtkRange subclasses.
True to make the slider size constant
procedure Set_Value
(Self : not null access Gtk_Range_Record;
Value : Gdouble)
Sets the current value of the range. If the value is outside the minimum or maximum range values, it will be clamped to fit inside them. The range emits the [signalGtk.Range::value-changed] signal if the value changes.
new value of the range
Show_Fill_Level_Property : constant Glib.Properties.Property_Boolean;
Controls whether fill level indicator graphics are displayed on the trough.
Signal_Adjust_Bounds : constant Glib.Signal_Name := "adjust-bounds";
Emitted before clamping a value, to give the application a chance to adjust the bounds.
Signal_Change_Value : constant Glib.Signal_Name := "change-value";
Emitted when a scroll action is performed on a range.
It allows an application to determine the type of scroll event that occurred and the resultant new value. The application can handle the event itself and return True to prevent further processing. Or, by returning False, it can pass the event to other handlers until the default GTK handler is reached.
The value parameter is unrounded. An application that overrides the ::change-value signal is responsible for clamping the value to the desired number of decimal digits; the default GTK handler clamps the value based on [propertyGtk.Range:round-digits].
Callback parameters: -- @param Scroll the type of scroll action that was performed -- @param Value the new value resulting from the scroll action
Signal_Move_Slider : constant Glib.Signal_Name := "move-slider";
Virtual function that moves the slider.
Used for keybindings.
Signal_Value_Changed : constant Glib.Signal_Name := "value-changed";
Emitted when the range value changes.
procedure Update_Next_Accessible_Sibling
(Self : not null access Gtk_Range_Record;
New_Sibling : Gtk.Accessible.Gtk_Accessible)
procedure Update_Platform_State
(Self : not null access Gtk_Range_Record;
State : Gtk.Accessible.Gtk_Accessible_Platform_State)