FlowBox
Object Hierarchy:
Description:
public class FlowBox : Container, Implementor, Buildable, Orientable
A GtkFlowBox positions child widgets in sequence according to its orientation.
For instance, with the horizontal orientation, the widgets will be arranged from left to right, starting a new row under the previous row when necessary. Reducing the width in this case will require more rows, so a larger height will be requested.
Likewise, with the vertical orientation, the widgets will be arranged from top to bottom, starting a new column to the right when necessary. Reducing the height will require more columns, so a larger width will be requested.
The size request of a GtkFlowBox alone may not be what you expect; if you need to be able to shrink it along both axes and dynamically reflow its children, you may have to wrap it in a ScrolledWindow to enable that.
The children of a GtkFlowBox can be dynamically sorted and filtered.
Although a GtkFlowBox must have only FlowBoxChild children, you can add any kind of widget to it via add, and a GtkFlowBoxChild widget will automatically be inserted between the box and the widget.
Also see ListBox.
GtkFlowBox was added in GTK+ 3.12.
CSS nodes
flowbox
├── flowboxchild
│ ╰── <child>
├── flowboxchild
│ ╰── <child>
┊
╰── [rubberband]
with name flowbox. GtkFlowBoxChild uses a single CSS node with name flowboxchild. For rubberband selection, a subnode with name rubberband is
used.
Content:
Properties:
- public bool activate_on_single_click { get; set; }
Determines whether children can be activated with a single click, or require a double-click.
- public uint column_spacing { get; set; }
The amount of horizontal space between two children.
- public bool homogeneous { get; set; }
Determines whether all children should be allocated the same size.
- public uint max_children_per_line { get; set; }
The maximum amount of children to request space for consecutively in the given orientation.
- public uint min_children_per_line { get; set; }
The minimum number of children to allocate consecutively in the given orientation.
- public uint row_spacing { get; set; }
The amount of vertical space between two children.
- public SelectionMode selection_mode { get; set; }
The selection mode used by the flow box.
Creation methods:
- public FlowBox ()
Creates a GtkFlowBox.
Methods:
- public void bind_model (ListModel? model, owned FlowBoxCreateWidgetFunc? create_widget_func)
Binds
model
to this. - public bool get_activate_on_single_click ()
Returns whether children activate on single clicks.
- public unowned FlowBoxChild? get_child_at_index (int idx)
Gets the nth child in the this.
- public unowned FlowBoxChild? get_child_at_pos (int x, int y)
Gets the child in the (
x
,y
) position. - public uint get_column_spacing ()
Gets the horizontal spacing.
- public bool get_homogeneous ()
Returns whether the box is homogeneous (all children are the same size).
- public uint get_max_children_per_line ()
Gets the maximum number of children per line.
- public uint get_min_children_per_line ()
Gets the minimum number of children per line.
- public uint get_row_spacing ()
Gets the vertical spacing.
- public List<unowned FlowBoxChild> get_selected_children ()
Creates a list of all selected children.
- public SelectionMode get_selection_mode ()
Gets the selection mode of this.
- public void insert (Widget widget, int position)
Inserts the
widget
into this atposition
. - public void invalidate_filter ()
Updates the filtering for all children.
- public void invalidate_sort ()
Updates the sorting for all children.
- public void select_child (FlowBoxChild child)
Selects a single child of this, if the selection mode allows it.
- public void selected_foreach (FlowBoxForeachFunc func)
Calls a function for each selected child.
- public void set_activate_on_single_click (bool single)
If
single
is true, children will be activated when you click on them, otherwise you need to double-click. - public void set_column_spacing (uint spacing)
Sets the horizontal space to add between children.
- public void set_filter_func (owned FlowBoxFilterFunc? filter_func)
By setting a filter function on the this one can decide dynamically which of the children to show.
- public void set_hadjustment (Adjustment adjustment)
Hooks up an adjustment to focus handling in this .
- public void set_homogeneous (bool homogeneous)
Sets the homogeneous property of this, controlling whether or not all children of this are given equal space in the box.
- public void set_max_children_per_line (uint n_children)
Sets the maximum number of children to request and allocate space for in this’s orientation.
- public void set_min_children_per_line (uint n_children)
Sets the minimum number of children to line up in this’s orientation before flowing.
- public void set_row_spacing (uint spacing)
Sets the vertical space to add between children.
- public void set_selection_mode (SelectionMode mode)
Sets how selection works in this.
- public void set_sort_func (owned FlowBoxSortFunc? sort_func)
By setting a sort function on the this, one can dynamically reorder the children of the box, based on the contents of the children.
- public void set_vadjustment (Adjustment adjustment)
Hooks up an adjustment to focus handling in this .
- public void unselect_child (FlowBoxChild child)
Unselects a single child of this, if the selection mode allows it.
Signals:
- public virtual signal void activate_cursor_child ()
The activate_cursor_child signal is a keybinding signal which gets emitted when the user activates the
box
. - public virtual signal void child_activated (FlowBoxChild child)
The child_activated signal is emitted when a child has been activated by the user.
- public virtual signal bool move_cursor (MovementStep step, int count)
The move_cursor signal is a keybinding signal which gets emitted when the user initiates a cursor movement.
- 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_children_changed ()
The selected_children_changed signal is emitted when the set of selected children changes.
- public virtual signal void toggle_cursor_child ()
The toggle_cursor_child signal is a keybinding signal which toggles the selection of the child that has the focus.
- 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