------------------------------------------------------------------------------ -- -- -- Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet -- -- Copyright (C) 2000-2014, AdaCore -- -- -- -- This library is free software; you can redistribute it and/or modify it -- -- under terms of the GNU General Public License as published by the Free -- -- Software Foundation; either version 3, or (at your option) any later -- -- version. This library is distributed in the hope that it will be useful, -- -- but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- -- -- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. -- -- -- -- As a special exception under Section 7 of GPL version 3, you are granted -- -- additional permissions described in the GCC Runtime Library Exception, -- -- version 3.1, as published by the Free Software Foundation. -- -- -- -- You should have received a copy of the GNU General Public License and -- -- a copy of the GCC Runtime Library Exception along with this program; -- -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -- <http://www.gnu.org/licenses/>. -- -- -- ------------------------------------------------------------------------------ -- <description> -- Gtk.Scrollable.Gtk_Scrollable is an interface that is implemented by -- widgets with native scrolling ability. -- -- To implement this interface you should override the -- Gtk.Scrollable.Gtk_Scrollable:hadjustment and -- Gtk.Scrollable.Gtk_Scrollable:vadjustment properties. -- -- == Creating a scrollable widget == -- -- All scrollable widgets should do the following. -- -- -- -- * -- -- When a parent widget sets the scrollable child widget's adjustments, the -- widget should populate the adjustments' -- Gtk.Adjustment.Gtk_Adjustment:lower, Gtk.Adjustment.Gtk_Adjustment:upper, -- Gtk.Adjustment.Gtk_Adjustment:step-increment, -- Gtk.Adjustment.Gtk_Adjustment:page-increment and -- Gtk.Adjustment.Gtk_Adjustment:page-size properties and connect to the -- Gtk.Adjustment.Gtk_Adjustment::value-changed signal. -- -- * -- -- Because its preferred size is the size for a fully expanded widget, the -- scrollable widget must be able to cope with underallocations. This means -- that it must accept any value passed to its -- Gtk.Widget.GObject_Class.size_allocate function. -- -- * -- -- When the parent allocates space to the scrollable child widget, the widget -- should update the adjustments' properties with new values. -- -- * -- -- When any of the adjustments emits the -- Gtk.Adjustment.Gtk_Adjustment::value-changed signal, the scrollable widget -- should scroll its contents. -- -- -- </description> -- <group>Interfaces</group> pragma Ada_2005; pragma Warnings (Off, "*is already use-visible*");
with Glib; use Glib;
with Glib.Properties; use Glib.Properties;
with Glib.Types; use Glib.Types;
with Gtk.Adjustment; use Gtk.Adjustment;
with Gtk.Enums; use Gtk.Enums;
package Gtk.Scrollable is
type Gtk_Scrollable is new Glib.Types.GType_Interface;
Null_Gtk_Scrollable : constant Gtk_Scrollable;
------------------ -- Constructors -- ------------------ function Get_Type return Glib.GType;
pragma Import (C, Get_Type, "gtk_scrollable_get_type");
------------- -- Methods -- ------------- function Get_Hadjustment
(Self : Gtk_Scrollable) return Gtk.Adjustment.Gtk_Adjustment;
-- Retrieves the Gtk.Adjustment.Gtk_Adjustment used for horizontal -- scrolling. -- Since: gtk+ 3.0 procedure Set_Hadjustment
(Self : Gtk_Scrollable;
Hadjustment : access Gtk.Adjustment.Gtk_Adjustment_Record'Class);
-- Sets the horizontal adjustment of the Gtk.Scrollable.Gtk_Scrollable. -- Since: gtk+ 3.0 -- "hadjustment": a Gtk.Adjustment.Gtk_Adjustment function Get_Hscroll_Policy
(Self : Gtk_Scrollable) return Gtk.Enums.Gtk_Scrollable_Policy;
pragma Import (C, Get_Hscroll_Policy, "gtk_scrollable_get_hscroll_policy");
-- Gets the horizontal Gtk.Enums.Gtk_Scrollable_Policy. -- Since: gtk+ 3.0 procedure Set_Hscroll_Policy
(Self : Gtk_Scrollable;
Policy : Gtk.Enums.Gtk_Scrollable_Policy);
pragma Import (C, Set_Hscroll_Policy, "gtk_scrollable_set_hscroll_policy");
-- Sets the Gtk.Enums.Gtk_Scrollable_Policy to determine whether -- horizontal scrolling should start below the minimum width or below the -- natural width. -- Since: gtk+ 3.0 -- "policy": the horizontal Gtk.Enums.Gtk_Scrollable_Policy function Get_Vadjustment
(Self : Gtk_Scrollable) return Gtk.Adjustment.Gtk_Adjustment;
-- Retrieves the Gtk.Adjustment.Gtk_Adjustment used for vertical -- scrolling. -- Since: gtk+ 3.0 procedure Set_Vadjustment
(Self : Gtk_Scrollable;
Vadjustment : access Gtk.Adjustment.Gtk_Adjustment_Record'Class);
-- Sets the vertical adjustment of the Gtk.Scrollable.Gtk_Scrollable. -- Since: gtk+ 3.0 -- "vadjustment": a Gtk.Adjustment.Gtk_Adjustment function Get_Vscroll_Policy
(Self : Gtk_Scrollable) return Gtk.Enums.Gtk_Scrollable_Policy;
pragma Import (C, Get_Vscroll_Policy, "gtk_scrollable_get_vscroll_policy");
-- Gets the vertical Gtk.Enums.Gtk_Scrollable_Policy. -- Since: gtk+ 3.0 procedure Set_Vscroll_Policy
(Self : Gtk_Scrollable;
Policy : Gtk.Enums.Gtk_Scrollable_Policy);
pragma Import (C, Set_Vscroll_Policy, "gtk_scrollable_set_vscroll_policy");
-- Sets the Gtk.Enums.Gtk_Scrollable_Policy to determine whether vertical -- scrolling should start below the minimum height or below the natural -- height. -- Since: gtk+ 3.0 -- "policy": the vertical Gtk.Enums.Gtk_Scrollable_Policy ---------------- -- Properties -- ---------------- -- The following properties are defined for this widget. See -- Glib.Properties for more information on properties) Hadjustment_Property : constant Glib.Properties.Property_Object;
-- Type: Gtk.Adjustment.Gtk_Adjustment -- Horizontal Gtk.Adjustment.Gtk_Adjustment of the scrollable widget. This -- adjustment is shared between the scrollable widget and its parent. Hscroll_Policy_Property : constant Gtk.Enums.Property_Gtk_Scrollable_Policy;
-- Determines whether horizontal scrolling should start once the -- scrollable widget is allocated less than its minimum width or less than -- its natural width. Vadjustment_Property : constant Glib.Properties.Property_Object;
-- Type: Gtk.Adjustment.Gtk_Adjustment -- Verical Gtk.Adjustment.Gtk_Adjustment of the scrollable widget. This -- adjustment is shared between the scrollable widget and its parent. Vscroll_Policy_Property : constant Gtk.Enums.Property_Gtk_Scrollable_Policy;
-- Determines whether vertical scrolling should start once the scrollable -- widget is allocated less than its minimum height or less than its -- natural height. ---------------- -- Interfaces -- ---------------- -- This class implements several interfaces. See Glib.Types -- -- - "Gtk_Scrollable" function "+" (W : Gtk_Scrollable) return Gtk_Scrollable;
pragma Inline ("+");
private Vscroll_Policy_Property : constant Gtk.Enums.Property_Gtk_Scrollable_Policy :=
Gtk.Enums.Build ("vscroll-policy");
Vadjustment_Property : constant Glib.Properties.Property_Object :=
Glib.Properties.Build ("vadjustment");
Hscroll_Policy_Property : constant Gtk.Enums.Property_Gtk_Scrollable_Policy :=
Gtk.Enums.Build ("hscroll-policy");
Hadjustment_Property : constant Glib.Properties.Property_Object :=
Glib.Properties.Build ("hadjustment");
Null_Gtk_Scrollable : constant Gtk_Scrollable :=
Gtk_Scrollable (Glib.Types.Null_Interface);
end Gtk.Scrollable;