_
WindowGtk_Scrolled_Window is a Gtk_Bin child: it's a container the accepts a single child widget. Gtk_Scrolled_Window adds scrollbars to the child widget.
The scrolled window can work in two ways. Some widgets have native scrolling support; these widgets have "slots" for Gtk_Adjustment objects. The scrolled window installs Gtk_Adjustment objects in the child window's slots using the "set_scroll_adjustments" signal (Conceptually, these widgets implement a "Scrollable" interface).
The second way to use the scrolled window is useful with widgets that lack the "set_scroll_adjustments" signal. The Gtk_Viewport widget acts as a proxy, implementing scrollability for child widgets that lack their own scrolling capabilities.
If a widget has native scrolling abilities, it can be added to the Gtk_Scrolled_Window with Gtk.Container.Add. If a widget does not, you must first add the widget to a Gtk_Viewport, then add the Gtk_Viewport to the scrolled window. The convenience function Add_With_Viewport does exactly this, so you can ignore the presence of the viewport.
If you want to create your own new widget type that can be inserted directly into a scrolled_window, you need to specify a signal for Set_Scroll_Adjustments in the call to Gtk.Object.Initialize_Class_Record.
Widget Hierarchy |
---|
Gtk_Object (see section Package Gtk.Object)
\___ Gtk_Widget (see section Package Gtk.Widget)
\___ Gtk_Container (see section Package Gtk.Container)
\___ Gtk_Scrolled_Window (see section Package Gtk.Scrolled
|
Types |
---|
type Gtk_Corner_Type is (Corner_Top_Left, Corner_Bottom_Left, Corner_Top_Right, Corner_Bottom_Right); | |
Type used by Set_Placement below to determine the location of the
child widget with respect to the scrollbars.
Corner_Top_Left means the child is in the top left, with the scrollbars
underneath and to the right.
|
Subprograms |
---|
procedure Gtk_New (Scrolled_Window : out Gtk_Scrolled_Window; Hadjustment : Adjustment.Gtk_Adjustment := Adjustment.Null_Adjustment; Vadjustment : Adjustment.Gtk_Adjustment := Adjustment.Null_Adjustment); | ||
Create a new scrolled window. | ||
function Get_Type return Gtk.Gtk_Type; | ||
Return the internal value associated with a Gtk_Scrolled_Window.
| ||
procedure Add_With_Viewport (Scrolled_Window : access Gtk_Scrolled_Window_Record; Child : access Gtk.Widget.Gtk_Widget_Record'Class); | ||
Used to add children without native scrolling capabilities. The viewport scrolls the child by moving its Gdk_Window, and takes the size of the child to be the size of its toplevel Gdk_Window. This will be very wrong for most widgets that support native scrolling; for example, if you add a Gtk_Clist with a viewport, the whole widget will scroll, including the column headings. Thus Gtk_Clist supports scrolling already, and should not be used with the GtkViewport proxy.
A widget supports scrolling natively if it contains a valid
"set_scroll_adjustments" signal.
| ||
function Get_Hadjustment (Scrolled_Window : access Gtk_Scrolled_Window_Record) return Adjustment.Gtk_Adjustment; | ||
Return the horizontal scrollbar's adjustment. | ||
function Get_Vadjustment (Scrolled_Window : access Gtk_Scrolled_Window_Record) return Adjustment.Gtk_Adjustment; | ||
Return the vertical scrollbar's adjustment. | ||
procedure Set_Hadjustment (Scrolled_Window : access Gtk_Scrolled_Window_Record; Hadjustment : Adjustment.Gtk_Adjustment); | ||
Set the Gtk_Adjustment for the horizontal scrollbar.
| ||
procedure Set_Vadjustment (Scrolled_Window : access Gtk_Scrolled_Window_Record; Vadjustment : Adjustment.Gtk_Adjustment); | ||
Set the Gtk_Adjustment for the vertical scrollbar.
| ||
procedure Set_Placement (Scrolled_Window : access Gtk_Scrolled_Window_Record; Window_Placement : Gtk_Corner_Type); | ||
Determine the location of the widget with respect to the scrollbars. | ||
procedure Set_Policy (Scrolled_Window : access Gtk_Scrolled_Window_Record; H_Scrollbar_Policy : in Enums.Gtk_Policy_Type; V_Scrollbar_Policy : in Enums.Gtk_Policy_Type); | ||
Set the scrollbar policy for the horizontal and vertical scrollbars. |