Index

Package: Scrolled_Window

Description

package Gtk.Scrolled_Window is

Gtk_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 Glib.Object.Initialize_Class_Record.

Binding from C File version 2.16.6

<testgtk>create_scrolled.adb</testgtk>

Screenshot

gtk-scrolled_window.png

Classes

Gtk_Scrolled_Window_Record

type Gtk_Scrolled_Window_Record is new Bin.Gtk_Bin_Record with private;

Ancestors:

Primitive operations:

Add_With_Viewport
Get_Hadjustment
Get_Hscrollbar
Get_Placement
Get_Shadow_Type
Get_Vadjustment
Get_Vscrollbar
Glib.Object.Deallocate (Inherited)
Glib.Object.Get_Type (Inherited)
Glib.Object.Notify (Inherited)
Glib.Object.Ref (Inherited)
Glib.Object.Ref_Sink (Inherited)
Glib.Object.Unref (Inherited)
Gtk.Bin.Get_Child (Inherited)
Gtk.Container.Add (Inherited)
Gtk.Container.Check_Resize (Inherited)
Gtk.Container.Child_Get_Property (Inherited)
Gtk.Container.Child_Set_Property (Inherited)
Gtk.Container.Child_Type (Inherited)
Gtk.Container.Forall (Inherited)
Gtk.Container.Foreach (Inherited)
Gtk.Container.Get_Border_Width (Inherited)
Gtk.Container.Get_Children (Inherited)
Gtk.Container.Get_Focus_Chain (Inherited)
Gtk.Container.Get_Focus_Child (Inherited)
Gtk.Container.Get_Focus_Hadjustment (Inherited)
Gtk.Container.Get_Focus_Vadjustment (Inherited)
Gtk.Container.Get_Resize_Mode (Inherited)
Gtk.Container.Propagate_Expose (Inherited)
Gtk.Container.Remove (Inherited)
Gtk.Container.Resize_Children (Inherited)
Gtk.Container.Set_Border_Width (Inherited)
Gtk.Container.Set_Focus_Chain (Inherited)
Gtk.Container.Set_Focus_Child (Inherited)
Gtk.Container.Set_Focus_Hadjustment (Inherited)
Gtk.Container.Set_Focus_Vadjustment (Inherited)
Gtk.Container.Set_Reallocate_Redraws (Inherited)
Gtk.Container.Set_Resize_Mode (Inherited)
Gtk.Container.Unset_Focus_Chain (Inherited)
Gtk.Widget.Activate (Inherited)
Gtk.Widget.Add_Accelerator (Inherited)
Gtk.Widget.Add_Events (Inherited)
Gtk.Widget.Add_Mnemonic_Label (Inherited)
Gtk.Widget.Can_Activate_Accel (Inherited)
Gtk.Widget.Child_Notify (Inherited)
Gtk.Widget.Class_Path (Inherited)
Gtk.Widget.Class_Path_Reversed (Inherited)
Gtk.Widget.Create_Pango_Context (Inherited)
Gtk.Widget.Create_Pango_Layout (Inherited)
Gtk.Widget.Destroy (Inherited)
Gtk.Widget.Draw (Inherited)
Gtk.Widget.Ensure_Style (Inherited)
Gtk.Widget.Error_Bell (Inherited)
Gtk.Widget.Flag_Is_Set (Inherited)
Gtk.Widget.Flags (Inherited)
Gtk.Widget.Freeze_Child_Notify (Inherited)
Gtk.Widget.Get_Allocation_Height (Inherited)
Gtk.Widget.Get_Allocation_Width (Inherited)
Gtk.Widget.Get_Allocation_X (Inherited)
Gtk.Widget.Get_Allocation_Y (Inherited)
Gtk.Widget.Get_Ancestor (Inherited)
Gtk.Widget.Get_Child_Requisition (Inherited)
Gtk.Widget.Get_Child_Visible (Inherited)
Gtk.Widget.Get_Colormap (Inherited)
Gtk.Widget.Get_Composite_Name (Inherited)
Gtk.Widget.Get_Direction (Inherited)
Gtk.Widget.Get_Events (Inherited)
Gtk.Widget.Get_Extension_Events (Inherited)
Gtk.Widget.Get_Has_Tooltip (Inherited)
Gtk.Widget.Get_Name (Inherited)
Gtk.Widget.Get_No_Show_All (Inherited)
Gtk.Widget.Get_Pango_Context (Inherited)
Gtk.Widget.Get_Parent (Inherited)
Gtk.Widget.Get_Parent_Window (Inherited)
Gtk.Widget.Get_Pointer (Inherited)
Gtk.Widget.Get_Root_Window (Inherited)
Gtk.Widget.Get_Size_Request (Inherited)
Gtk.Widget.Get_Snapshot (Inherited)
Gtk.Widget.Get_State (Inherited)
Gtk.Widget.Get_Style (Inherited)
Gtk.Widget.Get_Tooltip_Markup (Inherited)
Gtk.Widget.Get_Tooltip_Text (Inherited)
Gtk.Widget.Get_Tooltip_Window (Inherited)
Gtk.Widget.Get_Toplevel (Inherited)
Gtk.Widget.Get_Visual (Inherited)
Gtk.Widget.Get_Window (Inherited)
Gtk.Widget.Grab_Default (Inherited)
Gtk.Widget.Grab_Focus (Inherited)
Gtk.Widget.Has_Screen (Inherited)
Gtk.Widget.Hide (Inherited)
Gtk.Widget.Hide_All (Inherited)
Gtk.Widget.Input_Shape_Combine_Mask (Inherited)
Gtk.Widget.Intersect (Inherited)
Gtk.Widget.Is_Ancestor (Inherited)
Gtk.Widget.Is_Composited (Inherited)
Gtk.Widget.Is_Focus (Inherited)
Gtk.Widget.Keynav_Failed (Inherited)
Gtk.Widget.List_Mnemonic_Labels (Inherited)
Gtk.Widget.Map (Inherited)
Gtk.Widget.Mnemonic_Activate (Inherited)
Gtk.Widget.Modify_Base (Inherited)
Gtk.Widget.Modify_Bg (Inherited)
Gtk.Widget.Modify_Cursor (Inherited)
Gtk.Widget.Modify_Fg (Inherited)
Gtk.Widget.Modify_Font (Inherited)
Gtk.Widget.Modify_Text (Inherited)
Gtk.Widget.Path (Inherited)
Gtk.Widget.Path_Reversed (Inherited)
Gtk.Widget.Queue_Clear (Inherited)
Gtk.Widget.Queue_Clear_Area (Inherited)
Gtk.Widget.Queue_Draw (Inherited)
Gtk.Widget.Queue_Draw_Area (Inherited)
Gtk.Widget.Queue_Resize (Inherited)
Gtk.Widget.Queue_Resize_No_Redraw (Inherited)
Gtk.Widget.Realize (Inherited)
Gtk.Widget.Region_Intersect (Inherited)
Gtk.Widget.Remove_Accelerator (Inherited)
Gtk.Widget.Remove_Mnemonic_Label (Inherited)
Gtk.Widget.Render_Icon (Inherited)
Gtk.Widget.Reparent (Inherited)
Gtk.Widget.Reset_Rc_Styles (Inherited)
Gtk.Widget.Reset_Shapes (Inherited)
Gtk.Widget.Restore_Default_Style (Inherited)
Gtk.Widget.Send_Expose (Inherited)
Gtk.Widget.Set_Accel_Path (Inherited)
Gtk.Widget.Set_App_Paintable (Inherited)
Gtk.Widget.Set_Child_Visible (Inherited)
Gtk.Widget.Set_Colormap (Inherited)
Gtk.Widget.Set_Composite_Name (Inherited)
Gtk.Widget.Set_Direction (Inherited)
Gtk.Widget.Set_Double_Buffered (Inherited)
Gtk.Widget.Set_Events (Inherited)
Gtk.Widget.Set_Extension_Events (Inherited)
Gtk.Widget.Set_Flags (Inherited)
Gtk.Widget.Set_Has_Tooltip (Inherited)
Gtk.Widget.Set_Name (Inherited)
Gtk.Widget.Set_No_Show_All (Inherited)
Gtk.Widget.Set_Parent (Inherited)
Gtk.Widget.Set_Parent_Window (Inherited)
Gtk.Widget.Set_Redraw_On_Allocate (Inherited)
Gtk.Widget.Set_Scroll_Adjustments (Inherited)
Gtk.Widget.Set_Sensitive (Inherited)
Gtk.Widget.Set_Size_Request (Inherited)
Gtk.Widget.Set_State (Inherited)
Gtk.Widget.Set_Style (Inherited)
Gtk.Widget.Set_Tooltip_Markup (Inherited)
Gtk.Widget.Set_Tooltip_Text (Inherited)
Gtk.Widget.Set_Tooltip_Window (Inherited)
Gtk.Widget.Set_UPosition (Inherited)
Gtk.Widget.Set_USize (Inherited)
Gtk.Widget.Set_Window (Inherited)
Gtk.Widget.Shape_Combine_Mask (Inherited)
Gtk.Widget.Show (Inherited)
Gtk.Widget.Show_All (Inherited)
Gtk.Widget.Show_Now (Inherited)
Gtk.Widget.Size_Allocate (Inherited)
Gtk.Widget.Size_Request (Inherited)
Gtk.Widget.Style_Get_Property (Inherited)
Gtk.Widget.Thaw_Child_Notify (Inherited)
Gtk.Widget.Trigger_Tooltip_Query (Inherited)
Gtk.Widget.Unmap (Inherited)
Gtk.Widget.Unrealize (Inherited)
Gtk.Widget.Unset_Flags (Inherited)
Set_Hadjustment
Set_Placement
Set_Shadow_Type
Set_Vadjustment
Unset_Placement

Types

Gtk_Scrolled_Window

type Gtk_Scrolled_Window is access all Gtk_Scrolled_Window_Record'Class;

Constants & Global variables

Hadjustment_Property (Glib.Properties.Property_Object)

Hadjustment_Property       : constant Glib.Properties.Property_Object;

Hscrollbar_Policy_Property (Gtk.Enums.Property_Gtk_Policy_Type)

Hscrollbar_Policy_Property : constant Gtk.Enums.Property_Gtk_Policy_Type;

Vadjustment_Property (Glib.Properties.Property_Object)

Vadjustment_Property       : constant Glib.Properties.Property_Object;

Vscrollbar_Policy_Property (Gtk.Enums.Property_Gtk_Policy_Type)

Vscrollbar_Policy_Property : constant Gtk.Enums.Property_Gtk_Policy_Type;

Window_Placement_Property (Gtk.Enums.Property_Gtk_Shadow_Type)

Window_Placement_Property  : constant Gtk.Enums.Property_Gtk_Shadow_Type;

Window_Placement_Set_Property (Glib.Properties.Property_Boolean)

Window_Placement_Set_Property : constant Glib.Properties.Property_Boolean;

Scrollbar_Spacing_Property (Glib.Properties.Property_Int)

Scrollbar_Spacing_Property : constant Glib.Properties.Property_Int;

Scrollbars_Within_Bevel_Property (Glib.Properties.Property_Boolean)

Scrollbars_Within_Bevel_Property :
     constant Glib.Properties.Property_Boolean;

Signal_Move_Focus_Out (Glib.Signal_Name)

Signal_Move_Focus_Out : constant Glib.Signal_Name := "move_focus_out";

Signal_Scroll_Child (Glib.Signal_Name)

Signal_Scroll_Child   : constant Glib.Signal_Name := "scroll_child";

Subprograms & Entries

Gtk_New

procedure Gtk_New 
(Scrolled_Window: out Gtk_Scrolled_Window;
Hadjustment: Gtk_Adjustment := null;
Vadjustment: Gtk_Adjustment := null);
Create a new scrolled window. The two arguments are the scrolled window's horizontal and vertical adjustments; these will be shared with the scrollbars and the child widget to keep the bars in sync with the child. Usually you want to use the default value Null_Adjustment for the adjustments, which will cause the scrolled window to create them for you.

Initialize

procedure Initialize 
(Scrolled_Window: access Gtk_Scrolled_Window_Record'Class;
Hadjustment: Gtk_Adjustment := null;
Vadjustment: Gtk_Adjustment := null);
Internal initialization function. See the section "Creating your own widgets" in the documentation.

Get_Type

function Get_Type return Gtk.Gtk_Type;
Return the internal value associated with a Gtk_Scrolled_Window.

Set_Hadjustment

procedure Set_Hadjustment 
(Scrolled_Window: access Gtk_Scrolled_Window_Record;
Hadjustment: Gtk_Adjustment);

Get_Hadjustment

function Get_Hadjustment 
(Scrolled_Window: access Gtk_Scrolled_Window_Record) return Gtk_Adjustment;
Set the Gtk_Adjustment for the horizontal scrollbar. This adjustment is used to connect the horizontal scrollbar to the child widget's horizontal scroll functionality.

Set_Vadjustment

procedure Set_Vadjustment 
(Scrolled_Window: access Gtk_Scrolled_Window_Record;
Vadjustment: Gtk_Adjustment);

Get_Vadjustment

function Get_Vadjustment 
(Scrolled_Window: access Gtk_Scrolled_Window_Record) return Gtk_Adjustment;
Set the Gtk_Adjustment for the vertical scrollbar. This adjustment is used to connect the vertical scrollbar to the child widget's vertical scroll functionality.

Get_Hscrollbar

function Get_Hscrollbar 
(Scrolled_Window: access Gtk_Scrolled_Window_Record) return Gtk.Scrollbar.Gtk_Scrollbar;
Returns the horizontal scrollbar, or null if it doesn't have one.

Get_Vscrollbar

function Get_Vscrollbar 
(Scrolled_Window: access Gtk_Scrolled_Window_Record) return Gtk.Scrollbar.Gtk_Scrollbar;
Returns the vertical scrollbar, or null if it doesn't have one.

Set_Policy

procedure Set_Policy 
(Scrolled_Window: access Gtk_Scrolled_Window_Record;
H_Scrollbar_Policy: Enums.Gtk_Policy_Type;
V_Scrollbar_Policy: Enums.Gtk_Policy_Type);

Get_Policy

procedure Get_Policy 
(Scrolled_Window: access Gtk_Scrolled_Window_Record;
H_Scrollbar_Policy: out Enums.Gtk_Policy_Type;
V_Scrollbar_Policy: out Enums.Gtk_Policy_Type);
Set the scrollbar policy for the horizontal and vertical scrollbars. It determines when the scrollbar should appear; it is a value from the Gtk_Policy_Type enumeration. If Policy_Always, the scrollbar is always present; if Policy_Never, the scrollbar is never present; if Policy_Automatic, the scrollbar is present only if needed (that is, if the slider part of the bar would be smaller than the trough - the display is larger than the page size).

Set_Placement

procedure Set_Placement 
(Scrolled_Window: access Gtk_Scrolled_Window_Record;
Window_Placement: Gtk.Enums.Gtk_Corner_Type);

Get_Placement

function Get_Placement 
(Scrolled_Window: access Gtk_Scrolled_Window_Record) return Gtk.Enums.Gtk_Corner_Type;
Determine or return the location of the widget with respect to the scrollbars. The default is Corner_Top_Left.

Unset_Placement

procedure Unset_Placement 
(Scrolled_Window: access Gtk_Scrolled_Window_Record);
Unsets the placement of the contents with respect to the scrollbars for the scrolled window. If no window placement is set for a scrolled window, it obeys the "gtk-scrolled-window-placement" XSETTING.

Set_Shadow_Type

procedure Set_Shadow_Type 
(Scrolled_Window: access Gtk_Scrolled_Window_Record;
Shadow_Type: Gtk.Enums.Gtk_Shadow_Type);

Get_Shadow_Type

function Get_Shadow_Type 
(Scrolled_Window: access Gtk_Scrolled_Window_Record) return Gtk.Enums.Gtk_Shadow_Type;
Change the type of shadow drawn around the contents of Scrolled_Window.

Add_With_Viewport

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. This is simply a convenience function; it is equivalent to adding the unscrollable child to a viewport, then adding the viewport to the scrolled window. If a child has native scrolling, use Gtk.Container.Add instead of this function. 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.