## Documentation

Table of Contents
Class Inheritance Tree
Widget Screenshots
Package groups

## Index

Package: Combo

- Goto spec source

# Description

    package Gtk.Combo is

The Gtk_Combo widget consists of a single-line text entry field and a drop-down list. The drop-down list is displayed when the user clicks on a small arrow button to the right of the entry field.

The drop-down list is a Gtk_List widget and can be accessed using the list member of the Gtk_Combo. List elements can contain arbitrary widgets, but if an element is not a plain label, then you must use the Gtk_List.Set_Item_String function. This sets the string which will be placed in the text entry field when the item is selected.

By default, the user can step through the items in the list using the arrow (cursor) keys, though this behaviour can be turned off with Set_Use_Arrows.

Normally the arrow keys are only active when the contents of the text entry field matches one of the items in the list. If the contents of the entry field do not match any of the list items, then pressing the arrow keys does nothing. However, by calling Set_Use_Arrows_Always you can specify that the arrow keys are always active. If the contents of the entry field does not match any of the items in the list, then pressing the up or down arrow key will set the entry field to the last or first item in the list, respectively.

### Screenshot

<see>Gtk.Combo_Box</see>

# Packages

### Implements_Buildable (new Glib.Types.Implements)

    package Implements_Buildable is new Glib.Types.Implements
         (Gtk.Buildable.Gtk_Buildable, Gtk_Combo_Record, Gtk_Combo);

### Implements_Orientable (new Glib.Types.Implements)

    package Implements_Orientable is new Glib.Types.Implements
         (Gtk.Orientable.Gtk_Orientable, Gtk_Combo_Record, Gtk_Combo);

# Classes

### Gtk_Combo_Record

- Goto declaration in source

    type Gtk_Combo_Record is new Gtk_Hbox_Record with null record;

#### Ancestors:

Gtk.Box.Gtk_Box_Record
Gtk.Container.Gtk_Container_Record
Gtk.Widget.Gtk_Widget_Record
Glib.Object.GObject_Record

#### Primitive operations:

Disable_Activate

- To API doc
- To spec

Get_Entry

- To API doc
- To spec

Get_List

- To API doc
- To spec

Get_Orientation

- To API doc
- To spec

(overriding Gtk.Box.Get_Orientation)
Glib.Object.Deallocate

- To API doc
- To spec

(Inherited)
Glib.Object.Get_Type

- To API doc
- To spec

(Inherited)
Glib.Object.Notify

- To API doc
- To spec

(Inherited)
Glib.Object.Ref

- To API doc
- To spec

(Inherited)
Glib.Object.Ref_Sink

- To API doc
- To spec

(Inherited)
Glib.Object.Unref

- To API doc
- To spec

(Inherited)
Gtk.Box.Get_Child

- To API doc
- To spec

(Inherited)
Gtk.Box.Get_Homogeneous

- To API doc
- To spec

(Inherited)
Gtk.Box.Get_Spacing

- To API doc
- To spec

(Inherited)
Gtk.Box.Pack_End

- To API doc
- To spec

(Inherited)
Gtk.Box.Pack_End_Defaults

- To API doc
- To spec

(Inherited)
Gtk.Box.Pack_Start

- To API doc
- To spec

(Inherited)
Gtk.Box.Pack_Start_Defaults

- To API doc
- To spec

(Inherited)
Gtk.Box.Query_Child_Packing

- To API doc
- To spec

(Inherited)
Gtk.Box.Reorder_Child

- To API doc
- To spec

(Inherited)
Gtk.Box.Set_Child_Packing

- To API doc
- To spec

(Inherited)
Gtk.Box.Set_Homogeneous

- To API doc
- To spec

(Inherited)
Gtk.Box.Set_Spacing

- To API doc
- To spec

(Inherited)
Gtk.Container.Add

- To API doc
- To spec

(Inherited)
Gtk.Container.Check_Resize

- To API doc
- To spec

(Inherited)
Gtk.Container.Child_Get_Property

- To API doc
- To spec

(Inherited)
Gtk.Container.Child_Set_Property

- To API doc
- To spec

(Inherited)
Gtk.Container.Child_Type

- To API doc
- To spec

(Inherited)
Gtk.Container.Forall

- To API doc
- To spec

(Inherited)
Gtk.Container.Foreach

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Border_Width

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Children

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Focus_Chain

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Focus_Child

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Focus_Hadjustment

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Focus_Vadjustment

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Resize_Mode

- To API doc
- To spec

(Inherited)
Gtk.Container.Propagate_Expose

- To API doc
- To spec

(Inherited)
Gtk.Container.Remove

- To API doc
- To spec

(Inherited)
Gtk.Container.Resize_Children

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Border_Width

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Focus_Chain

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Focus_Child

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Focus_Hadjustment

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Focus_Vadjustment

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Reallocate_Redraws

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Resize_Mode

- To API doc
- To spec

(Inherited)
Gtk.Container.Unset_Focus_Chain

- To API doc
- To spec

(Inherited)
Gtk.Widget.Activate

- To API doc
- To spec

(Inherited)
Gtk.Widget.Add_Accelerator

- To API doc
- To spec

(Inherited)
Gtk.Widget.Add_Events

- To API doc
- To spec

(Inherited)
Gtk.Widget.Add_Mnemonic_Label

- To API doc
- To spec

(Inherited)
Gtk.Widget.Can_Activate_Accel

- To API doc
- To spec

(Inherited)
Gtk.Widget.Child_Notify

- To API doc
- To spec

(Inherited)
Gtk.Widget.Class_Path

- To API doc
- To spec

(Inherited)
Gtk.Widget.Class_Path_Reversed

- To API doc
- To spec

(Inherited)
Gtk.Widget.Create_Pango_Context

- To API doc
- To spec

(Inherited)
Gtk.Widget.Create_Pango_Layout

- To API doc
- To spec

(Inherited)
Gtk.Widget.Destroy

- To API doc
- To spec

(Inherited)
Gtk.Widget.Draw

- To API doc
- To spec

(Inherited)
Gtk.Widget.Ensure_Style

- To API doc
- To spec

(Inherited)
Gtk.Widget.Error_Bell

- To API doc
- To spec

(Inherited)
Gtk.Widget.Flag_Is_Set

- To API doc
- To spec

(Inherited)
Gtk.Widget.Flags

- To API doc
- To spec

(Inherited)
Gtk.Widget.Freeze_Child_Notify

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Allocation_Height

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Allocation_Width

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Allocation_X

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Allocation_Y

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Ancestor

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Child_Requisition

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Child_Visible

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Colormap

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Composite_Name

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Direction

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Events

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Extension_Events

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Has_Tooltip

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Name

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_No_Show_All

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Pango_Context

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Parent

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Parent_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Pointer

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Root_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Size_Request

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Snapshot

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_State

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Style

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Tooltip_Markup

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Tooltip_Text

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Tooltip_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Toplevel

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Visual

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Grab_Default

- To API doc
- To spec

(Inherited)
Gtk.Widget.Grab_Focus

- To API doc
- To spec

(Inherited)
Gtk.Widget.Has_Screen

- To API doc
- To spec

(Inherited)
Gtk.Widget.Hide

- To API doc
- To spec

(Inherited)
Gtk.Widget.Hide_All

- To API doc
- To spec

(Inherited)
Gtk.Widget.Input_Shape_Combine_Mask

- To API doc
- To spec

(Inherited)
Gtk.Widget.Intersect

- To API doc
- To spec

(Inherited)
Gtk.Widget.Is_Ancestor

- To API doc
- To spec

(Inherited)
Gtk.Widget.Is_Composited

- To API doc
- To spec

(Inherited)
Gtk.Widget.Is_Focus

- To API doc
- To spec

(Inherited)
Gtk.Widget.Keynav_Failed

- To API doc
- To spec

(Inherited)
Gtk.Widget.List_Mnemonic_Labels

- To API doc
- To spec

(Inherited)
Gtk.Widget.Map

- To API doc
- To spec

(Inherited)
Gtk.Widget.Mnemonic_Activate

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Base

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Bg

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Cursor

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Fg

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Font

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Text

- To API doc
- To spec

(Inherited)
Gtk.Widget.Path

- To API doc
- To spec

(Inherited)
Gtk.Widget.Path_Reversed

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Clear

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Clear_Area

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Draw

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Draw_Area

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Resize

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Resize_No_Redraw

- To API doc
- To spec

(Inherited)
Gtk.Widget.Realize

- To API doc
- To spec

(Inherited)
Gtk.Widget.Region_Intersect

- To API doc
- To spec

(Inherited)
Gtk.Widget.Remove_Accelerator

- To API doc
- To spec

(Inherited)
Gtk.Widget.Remove_Mnemonic_Label

- To API doc
- To spec

(Inherited)
Gtk.Widget.Render_Icon

- To API doc
- To spec

(Inherited)
Gtk.Widget.Reparent

- To API doc
- To spec

(Inherited)
Gtk.Widget.Reset_Rc_Styles

- To API doc
- To spec

(Inherited)
Gtk.Widget.Reset_Shapes

- To API doc
- To spec

(Inherited)
Gtk.Widget.Restore_Default_Style

- To API doc
- To spec

(Inherited)
Gtk.Widget.Send_Expose

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Accel_Path

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_App_Paintable

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Child_Visible

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Colormap

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Composite_Name

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Direction

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Double_Buffered

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Events

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Extension_Events

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Flags

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Has_Tooltip

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Name

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_No_Show_All

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Parent

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Parent_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Redraw_On_Allocate

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Scroll_Adjustments

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Sensitive

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Size_Request

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_State

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Style

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Tooltip_Markup

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Tooltip_Text

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Tooltip_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_UPosition

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_USize

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Shape_Combine_Mask

- To API doc
- To spec

(Inherited)
Gtk.Widget.Show

- To API doc
- To spec

(Inherited)
Gtk.Widget.Show_All

- To API doc
- To spec

(Inherited)
Gtk.Widget.Show_Now

- To API doc
- To spec

(Inherited)
Gtk.Widget.Size_Allocate

- To API doc
- To spec

(Inherited)
Gtk.Widget.Size_Request

- To API doc
- To spec

(Inherited)
Gtk.Widget.Style_Get_Property

- To API doc
- To spec

(Inherited)
Gtk.Widget.Thaw_Child_Notify

- To API doc
- To spec

(Inherited)
Gtk.Widget.Trigger_Tooltip_Query

- To API doc
- To spec

(Inherited)
Gtk.Widget.Unmap

- To API doc
- To spec

(Inherited)
Gtk.Widget.Unrealize

- To API doc
- To spec

(Inherited)
Gtk.Widget.Unset_Flags

- To API doc
- To spec

(Inherited)
Set_Case_Sensitive

- To API doc
- To spec

Set_Entry

- To API doc
- To spec

Set_Item_String

- To API doc
- To spec

Set_Orientation

- To API doc
- To spec

(overriding Gtk.Box.Set_Orientation)
Set_Popdown_Strings

- To API doc
- To spec

Set_Use_Arrows

- To API doc
- To spec

Set_Use_Arrows_Always

- To API doc
- To spec

Set_Value_In_List

- To API doc
- To spec

# Types

### Gtk_Combo

- Goto declaration in source

    type Gtk_Combo is access all Gtk_Combo_Record'Class;

# Constants & Global variables

### Allow_Empty_Property

- Goto declaration in source

(Glib.Properties.Property_Boolean)

    Allow_Empty_Property : constant Glib.Properties.Property_Boolean;

### Case_Sensitive_Property

- Goto declaration in source

(Glib.Properties.Property_Boolean)

    Case_Sensitive_Property : constant Glib.Properties.Property_Boolean;

### Enable_Arrow_Keys_Property

- Goto declaration in source

(Glib.Properties.Property_Boolean)

    Enable_Arrow_Keys_Property : constant Glib.Properties.Property_Boolean;

### Enable_Arrows_Always_Property

- Goto declaration in source

(Glib.Properties.Property_Boolean)

    Enable_Arrows_Always_Property : constant Glib.Properties.Property_Boolean;

### Value_In_List_Property

- Goto declaration in source

(Glib.Properties.Property_Boolean)

    Value_In_List_Property : constant Glib.Properties.Property_Boolean;

# Subprograms & Entries

### Gtk_New

- Goto spec in source

    procedure Gtk_New (Combo_Box: out Gtk_Combo);

### Initialize

- Goto spec in source

    procedure Initialize (Combo_Box: access Gtk_Combo_Record'Class);

### Get_Type

- Goto spec in source
- Goto body in source

    function Get_Type return Glib.GType;

### Disable_Activate

- Goto spec in source

    procedure Disable_Activate (Combo_Box: access Gtk_Combo_Record);

Disable the standard handler for the return key in the entry field. The default behavior is to popdown the combo box list, so that the user can choose from it. However, if you want to add your own callback for the return key, you need to call this subprogram, and connect a handler to the "activate" signal for the entry.

### Set_Case_Sensitive

- Goto spec in source

    procedure Set_Case_Sensitive (Combo_Box: access Gtk_Combo_Record;Val: Boolean := True);

Specify whether the text entered into the Gtk_Entry field and the text in the list items are case sensitive. This may be useful, for example, when you have called Set_Value_In_List to limit the values entered, but you are not worried about differences in case.

### Set_Item_String

- Goto spec in source

    procedure Set_Item_String (Combo_Box: access Gtk_Combo_Record;Item: access Gtk.Item.Gtk_Item_Record'Class;Item_Value: UTF8_String);

Set the string to place in the Gtk_Entry field when a particular list item is selected. This is needed if the list item is not a simple label.

### Set_Popdown_Strings

- Goto spec in source

    procedure Set_Popdown_Strings (Combo_Box: access Gtk_Combo_Record;Strings: Gtk.Enums.String_List.Glist);

Set all the items in the popup list.

### Set_Use_Arrows

- Goto spec in source

    procedure Set_Use_Arrows (Combo_Box: access Gtk_Combo_Record;Val: Boolean := True);

Specify if the arrow (cursor) keys can be used to step through the items in the list. This is on by default.

### Set_Use_Arrows_Always

- Goto spec in source

    procedure Set_Use_Arrows_Always (Combo_Box: access Gtk_Combo_Record;Val: Boolean := True);

Specify if the arrow keys will still work even if the current contents of the Gtk_Entry field do not match any of the list items.

### Set_Value_In_List

- Goto spec in source

    procedure Set_Value_In_List (Combo_Box: access Gtk_Combo_Record;Val: Boolean := True;Ok_If_Empty: Boolean := False);

Specify whether the value entered in the text entry field must match one of the values in the list. If this is set then the user will not be able to perform any other action until a valid value has been entered. If an empty field is acceptable, the Ok_If_Empty parameter should be True. If the value entered must match one of the values in the list, val should be True.

### Get_Entry

- Goto spec in source

    function Get_Entry (Combo_Box: access Gtk_Combo_Record) return Gtk.Widget.Gtk_Widget;

### Set_Entry

- Goto spec in source

    procedure Set_Entry (Combo_Box: access Gtk_Combo_Record;Value: access Gtk.Widget.Gtk_Widget_Record'Class);

### Get_List

- Goto spec in source

    function Get_List (Combo_Box: access Gtk_Combo_Record) return Gtk.Widget.Gtk_Widget;

### Get_Orientation

- Goto spec in source

    function Get_Orientation (Self: access Gtk_Combo_Record) return Gtk.Enums.Gtk_Orientation;

### Set_Orientation

- Goto spec in source

    procedure Set_Orientation (Self: access Gtk_Combo_Record;Orientation: Gtk.Enums.Gtk_Orientation);

### +

- Goto spec in source

    function "+" (Widget: access Gtk_Combo_Record'Class) return Gtk.Buildable.Gtk_Buildable renames Implements_Buildable.To_Interface;

### -

- Goto spec in source

    function "-" (Interf: Gtk.Buildable.Gtk_Buildable) return Gtk_Combo renames Implements_Buildable.To_Object;

### +

- Goto spec in source

    function "+" (Widget: access Gtk_Combo_Record'Class) return Gtk.Orientable.Gtk_Orientable renames Implements_Orientable.To_Interface;

### -

- Goto spec in source

    function "-" (Interf: Gtk.Orientable.Gtk_Orientable) return Gtk_Combo renames Implements_Orientable.To_Object;