ColumnView
open class ColumnView : Widget, ColumnViewProtocol
GtkColumnView
presents a large dynamic list of items using multiple columns
with headers.
GtkColumnView
uses the factories of its columns to generate a cell widget for
each column, for each visible item and displays them together as the row for
this item.
The [propertyGtk.ColumnView:show-row-separators
] and
[propertyGtk.ColumnView:show-column-separators
] properties offer a simple way
to display separators between the rows or columns.
GtkColumnView
allows the user to select items according to the selection
characteristics of the model. For models that allow multiple selected items,
it is possible to turn on rubberband selection, using
[propertyGtk.ColumnView:enable-rubberband
].
The column view supports sorting that can be customized by the user by
clicking on column headers. To set this up, the GtkSorter
returned by
[methodGtk.ColumnView.get_sorter
] must be attached to a sort model for the
data that the view is showing, and the columns must have sorters attached to
them by calling [methodGtk.ColumnViewColumn.set_sorter
]. The initial sort
order can be set with [methodGtk.ColumnView.sort_by_column
].
The column view also supports interactive resizing and reordering of
columns, via Drag-and-Drop of the column headers. This can be enabled or
disabled with the [propertyGtk.ColumnView:reorderable
] and
[propertyGtk.ColumnViewColumn:resizable
] properties.
To learn more about the list widget framework, see the overview.
CSS nodes
columnview[.column-separators][.rich-list][.navigation-sidebar][.data-table]
├── header
│ ├── <column header>
┊ ┊
│ ╰── <column header>
│
├── listview
│
┊
╰── [rubberband]
GtkColumnView
uses a single CSS node named columnview. It may carry the
.column-separators style class, when [propertyGtk.ColumnView:show-column-separators
]
property is set. Header widgets appear below a node with name header.
The rows are contained in a GtkListView
widget, so there is a listview
node with the same structure as for a standalone GtkListView
widget.
If [propertyGtk.ColumnView:show-row-separators
] is set, it will be passed
on to the list view, causing its CSS node to carry the .separators style class.
For rubberband selection, a node with name rubberband is used.
The main columnview node may also carry style classes to select the style of list presentation: .rich-list, .navigation-sidebar or .data-table.
Accessibility
GtkColumnView
uses the GTK_ACCESSIBLE_ROLE_TREE_GRID
role, header title
widgets are using the GTK_ACCESSIBLE_ROLE_COLUMN_HEADER
role. The row widgets
are using the GTK_ACCESSIBLE_ROLE_ROW
role, and individual cells are using
the GTK_ACCESSIBLE_ROLE_GRID_CELL
role
The ColumnView
type acts as a reference-counted owner of an underlying GtkColumnView
instance.
It provides the methods that can operate on this data type through ColumnViewProtocol
conformance.
Use ColumnView
as a strong reference or owner of a GtkColumnView
instance.
-
Designated initialiser from the underlying `C` data type.
This creates an instance without performing an unbalanced retain i.e., ownership is transferred to the
ColumnView
instance.Declaration
Swift
@inlinable public init(_ op: UnsafeMutablePointer<GtkColumnView>)
Parameters
op
pointer to the underlying object
-
Designated initialiser from a constant pointer to the underlying
C
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theColumnView
instance.Declaration
Swift
@inlinable public init(_ op: UnsafePointer<GtkColumnView>)
Parameters
op
pointer to the underlying object
-
Optional initialiser from a non-mutating
gpointer
to the underlyingC
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theColumnView
instance.Declaration
Swift
@inlinable override public init!(gpointer op: gpointer?)
Parameters
op
gpointer to the underlying object
-
Optional initialiser from a non-mutating
gconstpointer
to the underlyingC
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theColumnView
instance.Declaration
Swift
@inlinable override public init!(gconstpointer op: gconstpointer?)
Parameters
op
pointer to the underlying object
-
Optional initialiser from a constant pointer to the underlying
C
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theColumnView
instance.Declaration
Swift
@inlinable public init!(_ op: UnsafePointer<GtkColumnView>?)
Parameters
op
pointer to the underlying object
-
Optional initialiser from the underlying
C
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theColumnView
instance.Declaration
Swift
@inlinable public init!(_ op: UnsafeMutablePointer<GtkColumnView>?)
Parameters
op
pointer to the underlying object
-
Designated initialiser from the underlying
C
data type. Will retainGtkColumnView
. i.e., ownership is transferred to theColumnView
instance.Declaration
Swift
@inlinable public init(retaining op: UnsafeMutablePointer<GtkColumnView>)
Parameters
op
pointer to the underlying object
-
Reference intialiser for a related type that implements
ColumnViewProtocol
Will retainGtkColumnView
.Declaration
Swift
@inlinable public init<T>(columnView other: T) where T : ColumnViewProtocol
Parameters
other
an instance of a related type that implements
ColumnViewProtocol
-
Unsafe typed initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ColumnViewProtocol
.Declaration
Swift
@inlinable override public init<T>(cPointer p: UnsafeMutablePointer<T>)
Parameters
cPointer
pointer to the underlying object
-
Unsafe typed, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ColumnViewProtocol
.Declaration
Swift
@inlinable override public init<T>(retainingCPointer cPointer: UnsafeMutablePointer<T>)
Parameters
cPointer
pointer to the underlying object
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ColumnViewProtocol
.Declaration
Swift
@inlinable override public init(raw p: UnsafeRawPointer)
Parameters
p
raw pointer to the underlying object
-
Unsafe untyped, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ColumnViewProtocol
.Declaration
Swift
@inlinable override public init(retainingRaw raw: UnsafeRawPointer)
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ColumnViewProtocol
.Declaration
Swift
@inlinable public required init(raw p: UnsafeMutableRawPointer)
Parameters
p
mutable raw pointer to the underlying object
-
Unsafe untyped, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ColumnViewProtocol
.Declaration
Swift
@inlinable required public init(retainingRaw raw: UnsafeMutableRawPointer)
Parameters
raw
mutable raw pointer to the underlying object
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ColumnViewProtocol
.Declaration
Swift
@inlinable override public init(opaquePointer p: OpaquePointer)
Parameters
p
opaque pointer to the underlying object
-
Unsafe untyped, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ColumnViewProtocol
.Declaration
Swift
@inlinable override public init(retainingOpaquePointer p: OpaquePointer)
Parameters
p
opaque pointer to the underlying object
-
Creates a new
GtkColumnView
.You most likely want to call [method
Gtk.ColumnView.append_column
] to add columns next.Declaration
Swift
@inlinable public init<SelectionModelT>(model: SelectionModelT?) where SelectionModelT : SelectionModelProtocol