ColumnViewRef
public struct ColumnViewRef : ColumnViewProtocol, GWeakCapturing
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 ColumnViewRef
type acts as a lightweight Swift reference to an underlying GtkColumnView
instance.
It exposes methods that can operate on this data type through ColumnViewProtocol
conformance.
Use ColumnViewRef
only as an unowned
reference to an existing GtkColumnView
instance.
-
Untyped pointer to the underlying `GtkColumnView` instance.
For type-safe access, use the generated, typed pointer
column_view_ptr
property instead.Declaration
Swift
public let ptr: UnsafeMutableRawPointer!
-
Designated initialiser from the underlying
C
data typeDeclaration
Swift
@inlinable init(_ p: UnsafeMutablePointer<GtkColumnView>)
-
Designated initialiser from a constant pointer to the underlying
C
data typeDeclaration
Swift
@inlinable init(_ p: UnsafePointer<GtkColumnView>)
-
Conditional initialiser from an optional pointer to the underlying
C
data typeDeclaration
Swift
@inlinable init!(_ maybePointer: UnsafeMutablePointer<GtkColumnView>?)
-
Conditional initialiser from an optional, non-mutable pointer to the underlying
C
data typeDeclaration
Swift
@inlinable init!(_ maybePointer: UnsafePointer<GtkColumnView>?)
-
Conditional initialiser from an optional
gpointer
Declaration
Swift
@inlinable init!(gpointer g: gpointer?)
-
Conditional initialiser from an optional, non-mutable
gconstpointer
Declaration
Swift
@inlinable init!(gconstpointer g: gconstpointer?)
-
Reference intialiser for a related type that implements
ColumnViewProtocol
Declaration
Swift
@inlinable init<T>(_ other: T) where T : ColumnViewProtocol
-
This factory is syntactic sugar for setting weak pointers wrapped in
GWeak<T>
Declaration
Swift
@inlinable static func unowned<T>(_ other: T) -> ColumnViewRef where T : ColumnViewProtocol
-
Unsafe typed initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ColumnViewProtocol
.Declaration
Swift
@inlinable init<T>(cPointer: UnsafeMutablePointer<T>)
-
Unsafe typed initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ColumnViewProtocol
.Declaration
Swift
@inlinable init<T>(constPointer: UnsafePointer<T>)
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ColumnViewProtocol
.Declaration
Swift
@inlinable init(mutating 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 init(raw: UnsafeMutableRawPointer)
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ColumnViewProtocol
.Declaration
Swift
@inlinable init(opaquePointer: OpaquePointer)
-
Creates a new `GtkColumnView`.
You most likely want to call [method
Gtk.ColumnView.append_column
] to add columns next.Declaration
Swift
@inlinable init<SelectionModelT>(model: SelectionModelT?) where SelectionModelT : SelectionModelProtocol