ListBox
Object Hierarchy:
Description:
public class ListBox : Container, Implementor, Buildable
A GtkListBox is a vertical container that contains GtkListBoxRow children.
These rows can be dynamically sorted and filtered, and headers can be added dynamically depending on the row content. It also allows keyboard and mouse navigation and selection like a typical list.
Using GtkListBox is often an alternative to TreeView, especially when the list contents has a more complicated layout than what is allowed by a CellRenderer, or when the contents is interactive (i.e. has a button in it).
Although a ListBox must have only ListBoxRow children you can add any kind of widget to it via add, and a ListBoxRow widget will automatically be inserted between the list and the widget.
ListBoxRows can be marked as activatable or selectable. If a row is activatable, row_activated will be emitted for it when the user tries to activate it. If it is selectable, the row will be marked as selected when the user tries to select it.
The GtkListBox widget was added in GTK+ 3.10.
GtkListBox as GtkBuildable
The GtkListBox implementation of the Buildable interface supports setting a child as the placeholder by specifying “placeholder” as the “type” attribute of a `<child>` element. See set_placeholder for info.
CSS nodes
list
╰── row[.activatable]
istBox uses a single CSS node named list. Each GtkListBoxRow
uses a single CSS node named row. The row nodes get the .activatable style class added when appropriate.
Content:
Properties:
- public bool activate_on_single_click { get; set; }
- public SelectionMode selection_mode { get; set; }
Creation methods:
- public ListBox ()
Creates a new ListBox container.
Methods:
- public void bind_model (ListModel? model, owned ListBoxCreateWidgetFunc? create_widget_func)
Binds
model
to this. - public void drag_highlight_row (ListBoxRow row)
This is a helper function for implementing DnD onto a ListBox.
- public void drag_unhighlight_row ()
If a row has previously been highlighted via drag_highlight_row it will have the highlight removed.
- public bool get_activate_on_single_click ()
Returns whether rows activate on single clicks.
- public unowned Adjustment get_adjustment ()
Gets the adjustment (if any) that the widget uses to for vertical scrolling.
- public unowned ListBoxRow? get_row_at_index (int index_)
Gets the n-th child in the list (not counting headers).
- public unowned ListBoxRow? get_row_at_y (int y)
Gets the row at the
y
position. - public unowned ListBoxRow get_selected_row ()
Gets the selected row.
- public List<unowned ListBoxRow> get_selected_rows ()
Creates a list of all selected children.
- public SelectionMode get_selection_mode ()
Gets the selection mode of the listbox.
- public void insert (Widget child, int position)
Insert the
child
into the this atposition
. - public void invalidate_filter ()
Update the filtering for all rows.
- public void invalidate_headers ()
Update the separators for all rows.
- public void invalidate_sort ()
Update the sorting for all rows.
- public void prepend (Widget child)
Prepend a widget to the list.
- public void select_row (ListBoxRow? row)
Make
row
the currently selected row. - public void selected_foreach (ListBoxForeachFunc func)
Calls a function for each selected child.
- public void set_activate_on_single_click (bool single)
If
single
is true, rows will be activated when you click on them, otherwise you need to double-click. - public void set_adjustment (Adjustment? adjustment)
Sets the adjustment (if any) that the widget uses to for vertical scrolling.
- public void set_filter_func (owned ListBoxFilterFunc? filter_func)
By setting a filter function on the this one can decide dynamically which of the rows to show.
- public void set_header_func (owned ListBoxUpdateHeaderFunc? update_header)
By setting a header function on the this one can dynamically add headers in front of rows, depending on the contents of the row and its position in the list.
- public void set_placeholder (Widget? placeholder)
Sets the placeholder widget that is shown in the list when it doesn't display any visible children.
- public void set_selection_mode (SelectionMode mode)
Sets how selection works in the listbox.
- public void set_sort_func (owned ListBoxSortFunc? sort_func)
By setting a sort function on the this one can dynamically reorder the rows of the list, based on the contents of the rows.
- public void unselect_row (ListBoxRow row)
Unselects a single row of this, if the selection mode allows it.
Signals:
- public virtual signal void activate_cursor_row ()
- public virtual signal void move_cursor (MovementStep step, int count)
- public virtual signal void row_activated (ListBoxRow row)
The row_activated signal is emitted when a row has been activated by the user.
- public virtual signal void row_selected (ListBoxRow? row)
The row_selected signal is emitted when a new row is selected, or (with a null
row
) when the selection is cleared. - public virtual signal void select_all ()
The select_all signal is a keybinding signal which gets emitted to select all children of the box, if the selection mode permits it.
- public virtual signal void selected_rows_changed ()
The selected_rows_changed signal is emitted when the set of selected rows changes.
- public virtual signal void toggle_cursor_row ()
- public virtual signal void unselect_all ()
The unselect_all signal is a keybinding signal which gets emitted to unselect all children of the box, if the selection mode permits it.
Inherited Members:
- accel_closures_changed
- activate
- add_accelerator
- add_device_events
- add_events
- add_mnemonic_label
- add_tick_callback
- adjust_baseline_allocation
- adjust_baseline_request
- adjust_size_allocation
- adjust_size_request
- app_paintable
- bind_template_callback_full
- bind_template_child_full
- button_press_event
- button_release_event
- can_activate_accel
- can_default
- can_focus
- child_focus
- child_notify
- class_path
- composite_child
- composited_changed
- compute_expand
- compute_expand_internal
- configure_event
- create_pango_context
- create_pango_layout
- damage_event
- delete_event
- destroy
- destroy_event
- destroyed
- device_is_shadowed
- direction_changed
- dispatch_child_properties_changed
- double_buffered
- drag_begin
- drag_data_delete
- drag_data_get
- drag_data_received
- drag_drop
- drag_end
- drag_failed
- drag_leave
- drag_motion
- draw
- draw_to_cairo_context
- ensure_style
- enter_notify_event
- error_bell
- event
- event_after
- events
- expand
- find_style_property
- focus
- focus_in_event
- focus_on_click
- focus_out_event
- freeze_child_notify
- get_accessible
- get_action_group
- get_allocated_baseline
- get_allocated_height
- get_allocated_size
- get_allocated_width
- get_allocation
- get_ancestor
- get_app_paintable
- get_can_default
- get_can_focus
- get_child_requisition
- get_child_visible
- get_clip
- get_clipboard
- get_composite_name
- get_css_name
- get_default_direction
- get_default_style
- get_device_enabled
- get_device_events
- get_direction
- get_display
- get_double_buffered
- get_events
- get_focus_on_click
- get_font_map
- get_font_options
- get_frame_clock
- get_halign
- get_has_tooltip
- get_has_window
- get_hexpand
- get_hexpand_set
- get_mapped
- get_margin_bottom
- get_margin_end
- get_margin_left
- get_margin_right
- get_margin_start
- get_margin_top
- get_modifier_mask
- get_modifier_style
- get_no_show_all
- get_opacity
- get_pango_context
- get_parent
- get_parent_window
- get_path
- get_pointer
- get_preferred_height
- get_preferred_height_and_baseline_for_width
- get_preferred_height_for_width
- get_preferred_height_for_width_internal
- get_preferred_height_internal
- get_preferred_size
- get_preferred_width
- get_preferred_width_for_height
- get_preferred_width_for_height_internal
- get_preferred_width_internal
- get_realized
- get_receives_default
- get_request_mode
- get_requisition
- get_root_window
- get_scale_factor
- get_screen
- get_sensitive
- get_settings
- get_size_request
- get_state
- get_state_flags
- get_style
- get_style_context
- get_support_multidevice
- get_template_child
- get_tooltip_markup
- get_tooltip_text
- get_tooltip_window
- get_toplevel
- get_valign
- get_valign_with_baseline
- get_vexpand
- get_vexpand_set
- get_visible
- get_visual
- get_window
- grab_broken_event
- grab_default
- grab_focus
- grab_notify
- halign
- has_default
- has_focus
- has_grab
- has_rc_style
- has_screen
- has_tooltip
- has_visible_focus
- height_request
- hexpand
- hexpand_set
- hide
- hide_on_delete
- hierarchy_changed
- in_destruction
- init_template
- input_shape_combine_region
- insert_action_group
- install_style_property
- install_style_property_parser
- intersect
- is_ancestor
- is_composited
- is_drawable
- is_focus
- is_sensitive
- is_toplevel
- is_visible
- key_press_event
- key_release_event
- keynav_failed
- leave_notify_event
- list_accel_closures
- list_action_prefixes
- list_mnemonic_labels
- list_style_properties
- map
- map_event
- margin
- margin_bottom
- margin_end
- margin_left
- margin_right
- margin_start
- margin_top
- mnemonic_activate
- modify_base
- modify_bg
- modify_cursor
- modify_fg
- modify_font
- modify_style
- modify_text
- motion_notify_event
- move_focus
- name
- no_show_all
- opacity
- override_background_color
- override_color
- override_cursor
- override_font
- override_symbolic_color
- parent
- parent_set
- path
- pop_composite_child
- popup_menu
- property_notify_event
- proximity_in_event
- proximity_out_event
- push_composite_child
- query_tooltip
- queue_allocate
- queue_compute_expand
- queue_draw
- queue_draw_area
- queue_draw_region
- queue_resize
- queue_resize_no_redraw
- realize
- receives_default
- region_intersect
- register_window
- remove_accelerator
- remove_mnemonic_label
- remove_tick_callback
- render_icon
- render_icon_pixbuf
- reparent
- reset_rc_styles
- reset_style
- scale_factor
- screen_changed
- scroll_event
- selection_clear_event
- selection_get
- selection_notify_event
- selection_received
- selection_request_event
- send_expose
- send_focus_change
- sensitive
- set_accel_path
- set_accessible_role
- set_accessible_type
- set_allocation
- set_app_paintable
- set_can_default
- set_can_focus
- set_child_visible
- set_clip
- set_composite_name
- set_connect_func
- set_css_name
- set_default_direction
- set_device_enabled
- set_device_events
- set_direction
- set_double_buffered
- set_events
- set_focus_on_click
- set_font_map
- set_font_options
- set_halign
- set_has_tooltip
- set_has_window
- set_hexpand
- set_hexpand_set
- set_mapped
- set_margin_bottom
- set_margin_end
- set_margin_left
- set_margin_right
- set_margin_start
- set_margin_top
- set_no_show_all
- set_opacity
- set_parent
- set_parent_window
- set_realized
- set_receives_default
- set_redraw_on_allocate
- set_sensitive
- set_size_request
- set_state
- set_state_flags
- set_style
- set_support_multidevice
- set_template
- set_template_from_resource
- set_tooltip_markup
- set_tooltip_text
- set_tooltip_window
- set_valign
- set_vexpand
- set_vexpand_set
- set_visible
- set_visual
- set_window
- shape_combine_region
- show
- show_all
- show_help
- show_now
- size_allocate
- size_allocate_with_baseline
- size_request
- state_changed
- state_flags_changed
- style
- style_attach
- style_get
- style_get_property
- style_get_valist
- style_set
- style_updated
- thaw_child_notify
- tooltip_markup
- tooltip_text
- touch_event
- translate_coordinates
- trigger_tooltip_query
- unmap
- unmap_event
- unparent
- unrealize
- unregister_window
- unset_state_flags
- valign
- vexpand
- vexpand_set
- visibility_notify_event
- visible
- width_request
- window_state_event