gtk4

Struct TreeViewColumn

Source
pub struct TreeViewColumn { /* private fields */ }
👎Deprecated: Since 4.10
Expand description

Use ColumnView and ColumnViewColumn instead of TreeView to show a tabular list A visible column in a TreeView widget

The TreeViewColumn object represents a visible column in a TreeView widget. It allows to set properties of the column header, and functions as a holding pen for the cell renderers which determine how the data in the column is displayed.

Please refer to the tree widget conceptual overview for an overview of all the objects and data types related to the tree widget and how they work together, and to the TreeView documentation for specifics about the CSS node structure for treeviews and their headers.

§Properties

§alignment

Readable | Writeable

§cell-area

The CellArea used to layout cell renderers for this column.

If no area is specified when creating the tree view column with gtk_tree_view_column_new_with_area() a horizontally oriented CellAreaBox will be used.

Readable | Writeable | Construct Only

§clickable

Readable | Writeable

§expand

Readable | Writeable

§fixed-width

Readable | Writeable

§max-width

Readable | Writeable

§min-width

Readable | Writeable

§reorderable

Readable | Writeable

§resizable

Readable | Writeable

§sizing

Readable | Writeable

§sort-column-id

Logical sort column ID this column sorts on when selected for sorting. Setting the sort column ID makes the column header clickable. Set to -1 to make the column unsortable.

Readable | Writeable

§sort-indicator

Readable | Writeable

§sort-order

Readable | Writeable

§spacing

Readable | Writeable

§title

Readable | Writeable

§visible

Readable | Writeable

§widget

Readable | Writeable

§width

Readable

§x-offset

Readable

§Signals

§clicked

Emitted when the column’s header has been clicked.

§Implements

[trait@glib::ObjectExt], BuildableExt, CellLayoutExt, CellLayoutExtManual

GLib type: GObject with reference counted clone semantics.

Implementations§

Source§

impl TreeViewColumn

Source

pub fn new() -> TreeViewColumn

👎Deprecated: Since 4.10

Creates a new TreeViewColumn.

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

A newly created TreeViewColumn.

Source

pub fn with_area(area: &impl IsA<CellArea>) -> TreeViewColumn

👎Deprecated: Since 4.10

Creates a new TreeViewColumn using @area to render its cells.

§Deprecated since 4.10

Use GtkColumnView instead

§area

the CellArea that the newly created column should use to layout cells.

§Returns

A newly created TreeViewColumn.

Source

pub fn builder() -> TreeViewColumnBuilder

👎Deprecated: Since 4.10

Creates a new builder-pattern struct instance to construct TreeViewColumn objects.

This method returns an instance of TreeViewColumnBuilder which can be used to create TreeViewColumn objects.

Source

pub fn add_attribute( &self, cell_renderer: &impl IsA<CellRenderer>, attribute: &str, column: i32, )

👎Deprecated: Since 4.10

Adds an attribute mapping to the list in @self.

The @column is the column of the model to get a value from, and the @attribute is the parameter on @cell_renderer to be set from the value. So for example if column 2 of the model contains strings, you could have the “text” attribute of a CellRendererText get its values from column 2.

§Deprecated since 4.10

Use GtkColumnView instead

§cell_renderer

the CellRenderer to set attributes on

§attribute

An attribute on the renderer

§column

The column position on the model to get the attribute from.

Source

pub fn cell_get_position( &self, cell_renderer: &impl IsA<CellRenderer>, ) -> Option<(i32, i32)>

👎Deprecated: Since 4.10

Obtains the horizontal position and size of a cell in a column.

If the cell is not found in the column, @start_pos and @width are not changed and false is returned.

§Deprecated since 4.10

Use GtkColumnView instead

§cell_renderer

a CellRenderer

§Returns

true if @cell belongs to @self

§x_offset

return location for the horizontal position of @cell within @self

§width

return location for the width of @cell

Source

pub fn cell_get_size(&self) -> (i32, i32, i32, i32)

👎Deprecated: Since 4.10

Obtains the width and height needed to render the column. This is used primarily by the TreeView.

§Deprecated since 4.10

Use GtkColumnView instead

§Returns
§x_offset

location to return x offset of a cell relative to @cell_area

§y_offset

location to return y offset of a cell relative to @cell_area

§width

location to return width needed to render a cell

§height

location to return height needed to render a cell

Source

pub fn cell_is_visible(&self) -> bool

👎Deprecated: Since 4.10

Returns true if any of the cells packed into the @self are visible. For this to be meaningful, you must first initialize the cells with gtk_tree_view_column_cell_set_cell_data()

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

true, if any of the cells packed into the @self are currently visible

Source

pub fn cell_set_cell_data( &self, tree_model: &impl IsA<TreeModel>, iter: &TreeIter, is_expander: bool, is_expanded: bool, )

👎Deprecated: Since 4.10

Sets the cell renderer based on the @tree_model and @iter. That is, for every attribute mapping in @self, it will get a value from the set column on the @iter, and use that value to set the attribute on the cell renderer. This is used primarily by the TreeView.

§Deprecated since 4.10

Use GtkColumnView instead

§tree_model

The TreeModel to get the cell renderers attributes from.

§iter

The TreeIter to get the cell renderer’s attributes from.

§is_expander

true, if the row has children

§is_expanded

true, if the row has visible children

Source

pub fn clear(&self)

👎Deprecated: Since 4.10

Unsets all the mappings on all renderers on the @self.

§Deprecated since 4.10

Use GtkColumnView instead

Source

pub fn clear_attributes(&self, cell_renderer: &impl IsA<CellRenderer>)

👎Deprecated: Since 4.10

Clears all existing attributes previously set with gtk_tree_view_column_set_attributes().

§Deprecated since 4.10

Use GtkColumnView instead

§cell_renderer

a CellRenderer to clear the attribute mapping on.

Source

pub fn clicked(&self)

👎Deprecated: Since 4.10

Emits the “clicked” signal on the column. This function will only work if @self is clickable.

§Deprecated since 4.10

Use GtkColumnView instead

Source

pub fn focus_cell(&self, cell: &impl IsA<CellRenderer>)

👎Deprecated: Since 4.10

Sets the current keyboard focus to be at @cell, if the column contains 2 or more editable and activatable cells.

§Deprecated since 4.10

Use GtkColumnView instead

§cell

A CellRenderer

Source

pub fn alignment(&self) -> f32

👎Deprecated: Since 4.10

Returns the current x alignment of @self. This value can range between 0.0 and 1.0.

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

The current alignent of @self.

Source

pub fn button(&self) -> Widget

👎Deprecated: Since 4.10

Returns the button used in the treeview column header

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

The button for the column header.

Source

pub fn is_clickable(&self) -> bool

👎Deprecated: Since 4.10

Returns true if the user can click on the header for the column.

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

true if user can click the column header.

Source

pub fn expands(&self) -> bool

👎Deprecated: Since 4.10

Returns true if the column expands to fill available space.

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

true if the column expands to fill available space.

Source

pub fn fixed_width(&self) -> i32

👎Deprecated: Since 4.10

Gets the fixed width of the column. This may not be the actual displayed width of the column; for that, use gtk_tree_view_column_get_width().

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

The fixed width of the column.

Source

pub fn max_width(&self) -> i32

👎Deprecated: Since 4.10

Returns the maximum width in pixels of the @self, or -1 if no maximum width is set.

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

The maximum width of the @self.

Source

pub fn min_width(&self) -> i32

👎Deprecated: Since 4.10

Returns the minimum width in pixels of the @self, or -1 if no minimum width is set.

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

The minimum width of the @self.

Source

pub fn is_reorderable(&self) -> bool

👎Deprecated: Since 4.10

Returns true if the @self can be reordered by the user.

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

true if the @self can be reordered by the user.

Source

pub fn is_resizable(&self) -> bool

👎Deprecated: Since 4.10

Returns true if the @self can be resized by the end user.

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

true, if the @self can be resized.

Source

pub fn sizing(&self) -> TreeViewColumnSizing

👎Deprecated: Since 4.10

Returns the current type of @self.

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

The type of @self.

Source

pub fn sort_column_id(&self) -> i32

👎Deprecated: Since 4.10

Gets the logical @sort_column_id that the model sorts on when this column is selected for sorting.

See set_sort_column_id().

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

the current @sort_column_id for this column, or -1 if this column can’t be used for sorting

Source

pub fn is_sort_indicator(&self) -> bool

👎Deprecated: Since 4.10

Gets the value set by gtk_tree_view_column_set_sort_indicator().

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

whether the sort indicator arrow is displayed

Source

pub fn sort_order(&self) -> SortType

👎Deprecated: Since 4.10

Gets the value set by gtk_tree_view_column_set_sort_order().

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

the sort order the sort indicator is indicating

Source

pub fn spacing(&self) -> i32

👎Deprecated: Since 4.10

Returns the spacing of @self.

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

the spacing of @self.

Source

pub fn title(&self) -> GString

👎Deprecated: Since 4.10

Returns the title of the widget.

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

the title of the column. This string should not be modified or freed.

Source

pub fn tree_view(&self) -> Option<Widget>

👎Deprecated: Since 4.10

Returns the TreeView wherein @self has been inserted. If @column is currently not inserted in any tree view, None is returned.

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

The tree view wherein @column has been inserted

Source

pub fn is_visible(&self) -> bool

👎Deprecated: Since 4.10

Returns true if @self is visible.

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

whether the column is visible or not. If it is visible, then the tree will show the column.

Source

pub fn widget(&self) -> Option<Widget>

👎Deprecated: Since 4.10

Returns the Widget in the button on the column header.

If a custom widget has not been set then None is returned.

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

The Widget in the column header

Source

pub fn width(&self) -> i32

👎Deprecated: Since 4.10

Returns the current size of @self in pixels.

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

The current width of @self.

Source

pub fn x_offset(&self) -> i32

👎Deprecated: Since 4.10

Returns the current X offset of @self in pixels.

§Deprecated since 4.10

Use GtkColumnView instead

§Returns

The current X offset of @self.

Source

pub fn pack_end(&self, cell: &impl IsA<CellRenderer>, expand: bool)

👎Deprecated: Since 4.10

Adds the @cell to end of the column. If @expand is false, then the @cell is allocated no more space than it needs. Any unused space is divided evenly between cells for which @expand is true.

§Deprecated since 4.10

Use GtkColumnView instead

§cell

The CellRenderer

§expand

true if @cell is to be given extra space allocated to @self.

Source

pub fn pack_start(&self, cell: &impl IsA<CellRenderer>, expand: bool)

👎Deprecated: Since 4.10

Packs the @cell into the beginning of the column. If @expand is false, then the @cell is allocated no more space than it needs. Any unused space is divided evenly between cells for which @expand is true.

§Deprecated since 4.10

Use GtkColumnView instead

§cell

The CellRenderer

§expand

true if @cell is to be given extra space allocated to @self.

Source

pub fn queue_resize(&self)

👎Deprecated: Since 4.10

Flags the column, and the cell renderers added to this column, to have their sizes renegotiated.

§Deprecated since 4.10

Use GtkColumnView instead

Source

pub fn set_alignment(&self, xalign: f32)

👎Deprecated: Since 4.10

Sets the alignment of the title or custom widget inside the column header. The alignment determines its location inside the button – 0.0 for left, 0.5 for center, 1.0 for right.

§Deprecated since 4.10

Use GtkColumnView instead

§xalign

The alignment, which is between [0.0 and 1.0] inclusive.

Source

pub fn set_cell_data_func<P: Fn(&TreeViewColumn, &CellRenderer, &TreeModel, &TreeIter) + 'static>( &self, cell_renderer: &impl IsA<CellRenderer>, func: P, )

👎Deprecated: Since 4.10

Sets the GtkTreeCellDataFunc to use for the column.

This function is used instead of the standard attributes mapping for setting the column value, and should set the value of @self’s cell renderer as appropriate. @func may be None to remove an older one.

§Deprecated since 4.10

Use GtkColumnView instead

§cell_renderer

A CellRenderer

§func

The GtkTreeCellDataFunc to use.

§func_data

The user data for @func.

Source

pub fn set_clickable(&self, clickable: bool)

👎Deprecated: Since 4.10

Sets the header to be active if @clickable is true. When the header is active, then it can take keyboard focus, and can be clicked.

§Deprecated since 4.10

Use GtkColumnView instead

§clickable

true if the header is active.

Source

pub fn set_expand(&self, expand: bool)

👎Deprecated: Since 4.10

Sets the column to take available extra space. This space is shared equally amongst all columns that have the expand set to true. If no column has this option set, then the last column gets all extra space. By default, every column is created with this false.

Along with “fixed-width”, the “expand” property changes when the column is resized by the user.

§Deprecated since 4.10

Use GtkColumnView instead

§expand

true if the column should expand to fill available space.

Source

pub fn set_fixed_width(&self, fixed_width: i32)

👎Deprecated: Since 4.10

If @fixed_width is not -1, sets the fixed width of @self; otherwise unsets it. The effective value of @fixed_width is clamped between the minimum and maximum width of the column; however, the value stored in the “fixed-width” property is not clamped. If the column sizing is TreeViewColumnSizing::GrowOnly or TreeViewColumnSizing::Autosize, setting a fixed width overrides the automatically calculated width. Note that @fixed_width is only a hint to GTK; the width actually allocated to the column may be greater or less than requested.

Along with “expand”, the “fixed-width” property changes when the column is resized by the user.

§Deprecated since 4.10

Use GtkColumnView instead

§fixed_width

The new fixed width, in pixels, or -1.

Source

pub fn set_max_width(&self, max_width: i32)

👎Deprecated: Since 4.10

Sets the maximum width of the @self. If @max_width is -1, then the maximum width is unset. Note, the column can actually be wider than max width if it’s the last column in a view. In this case, the column expands to fill any extra space.

§Deprecated since 4.10

Use GtkColumnView instead

§max_width

The maximum width of the column in pixels, or -1.

Source

pub fn set_min_width(&self, min_width: i32)

👎Deprecated: Since 4.10

Sets the minimum width of the @self. If @min_width is -1, then the minimum width is unset.

§Deprecated since 4.10

Use GtkColumnView instead

§min_width

The minimum width of the column in pixels, or -1.

Source

pub fn set_reorderable(&self, reorderable: bool)

👎Deprecated: Since 4.10

If @reorderable is true, then the column can be reordered by the end user dragging the header.

§Deprecated since 4.10

Use GtkColumnView instead

§reorderable

true, if the column can be reordered.

Source

pub fn set_resizable(&self, resizable: bool)

👎Deprecated: Since 4.10

If @resizable is true, then the user can explicitly resize the column by grabbing the outer edge of the column button.

If resizable is true and sizing mode of the column is TreeViewColumnSizing::Autosize, then the sizing mode is changed to TreeViewColumnSizing::GrowOnly.

§Deprecated since 4.10

Use GtkColumnView instead

§resizable

true, if the column can be resized

Source

pub fn set_sizing(&self, type_: TreeViewColumnSizing)

👎Deprecated: Since 4.10

Sets the growth behavior of @self to @type_.

§Deprecated since 4.10

Use GtkColumnView instead

§type_

The TreeViewColumnSizing.

Source

pub fn set_sort_column_id(&self, sort_column_id: i32)

👎Deprecated: Since 4.10

Sets the logical @sort_column_id that this column sorts on when this column is selected for sorting. Doing so makes the column header clickable.

§Deprecated since 4.10

Use GtkColumnView instead

§sort_column_id

The @sort_column_id of the model to sort on.

Source

pub fn set_sort_indicator(&self, setting: bool)

👎Deprecated: Since 4.10

Call this function with a @setting of true to display an arrow in the header button indicating the column is sorted. Call gtk_tree_view_column_set_sort_order() to change the direction of the arrow.

§Deprecated since 4.10

Use GtkColumnView instead

§setting

true to display an indicator that the column is sorted

Source

pub fn set_sort_order(&self, order: SortType)

👎Deprecated: Since 4.10

Changes the appearance of the sort indicator.

This does not actually sort the model. Use gtk_tree_view_column_set_sort_column_id() if you want automatic sorting support. This function is primarily for custom sorting behavior, and should be used in conjunction with gtk_tree_sortable_set_sort_column_id() to do that. For custom models, the mechanism will vary.

The sort indicator changes direction to indicate normal sort or reverse sort. Note that you must have the sort indicator enabled to see anything when calling this function; see gtk_tree_view_column_set_sort_indicator().

§Deprecated since 4.10

Use GtkColumnView instead

§order

sort order that the sort indicator should indicate

Source

pub fn set_spacing(&self, spacing: i32)

👎Deprecated: Since 4.10

Sets the spacing field of @self, which is the number of pixels to place between cell renderers packed into it.

§Deprecated since 4.10

Use GtkColumnView instead

§spacing

distance between cell renderers in pixels.

Source

pub fn set_title(&self, title: &str)

👎Deprecated: Since 4.10

Sets the title of the @self. If a custom widget has been set, then this value is ignored.

§Deprecated since 4.10

Use GtkColumnView instead

§title

The title of the @self.

Source

pub fn set_visible(&self, visible: bool)

👎Deprecated: Since 4.10

Sets the visibility of @self.

§Deprecated since 4.10

Use GtkColumnView instead

§visible

true if the @self is visible.

Source

pub fn set_widget(&self, widget: Option<&impl IsA<Widget>>)

👎Deprecated: Since 4.10

Sets the widget in the header to be @widget. If widget is None, then the header button is set with a Label set to the title of @self.

§Deprecated since 4.10

Use GtkColumnView instead

§widget

A child Widget

Source

pub fn cell_area(&self) -> Option<CellArea>

👎Deprecated: Since 4.10

The CellArea used to layout cell renderers for this column.

If no area is specified when creating the tree view column with gtk_tree_view_column_new_with_area() a horizontally oriented CellAreaBox will be used.

Source

pub fn connect_clicked<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId

👎Deprecated: Since 4.10

Emitted when the column’s header has been clicked.

Source

pub fn connect_alignment_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source

pub fn connect_clickable_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source

pub fn connect_expand_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source

pub fn connect_fixed_width_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source

pub fn connect_max_width_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source

pub fn connect_min_width_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source

pub fn connect_reorderable_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source

pub fn connect_resizable_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source

pub fn connect_sizing_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source

pub fn connect_sort_column_id_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source

pub fn connect_sort_indicator_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source

pub fn connect_sort_order_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source

pub fn connect_spacing_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source

pub fn connect_title_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source

pub fn connect_visible_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source

pub fn connect_widget_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source

pub fn connect_width_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source

pub fn connect_x_offset_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId

👎Deprecated: Since 4.10
Source§

impl TreeViewColumn

Source

pub fn with_attributes( title: &str, cell_renderer: &impl IsA<CellRenderer>, attributes: &[(&str, i32)], ) -> Self

👎Deprecated: Since 4.10

Creates a new TreeViewColumn with a number of default values. This is equivalent to calling gtk_tree_view_column_set_title(), gtk_tree_view_column_pack_start(), and gtk_tree_view_column_set_attributes() on the newly created TreeViewColumn.

Here’s a simple example:

⚠️ The following code is in C ⚠️

 enum { TEXT_COLUMN, COLOR_COLUMN, N_COLUMNS };
 // ...
 {
   GtkTreeViewColumn *column;
   GtkCellRenderer   *renderer = gtk_cell_renderer_text_new ();

   column = gtk_tree_view_column_new_with_attributes ("Title",
                                                      renderer,
                                                      "text", TEXT_COLUMN,
                                                      "foreground", COLOR_COLUMN,
                                                      NULL);
 }
§Deprecated since 4.10

Use GtkColumnView instead

§title

The title to set the header to

§cell

The CellRenderer

§Returns

A newly created TreeViewColumn.

Source

pub fn set_attributes( &self, cell_renderer: &impl IsA<CellRenderer>, attributes: &[(&str, i32)], )

👎Deprecated: Since 4.10

Sets the attributes in the list as the attributes of @self.

The attributes should be in attribute/column order, as in gtk_tree_view_column_add_attribute(). All existing attributes are removed, and replaced with the new attributes.

§Deprecated since 4.10

Use GtkColumnView instead

§cell_renderer

the CellRenderer we’re setting the attributes of

Source

pub fn unset_cell_data_func(&self, cell_renderer: &impl IsA<CellRenderer>)

👎Deprecated: Since 4.10

Trait Implementations§

Source§

impl Clone for TreeViewColumn

Source§

fn clone(&self) -> Self

Makes a clone of this shared reference.

This increments the strong reference count of the object. Dropping the object will decrement it again.

1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TreeViewColumn

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for TreeViewColumn

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl HasParamSpec for TreeViewColumn

Source§

type ParamSpec = ParamSpecObject

Source§

type SetValue = TreeViewColumn

Preferred value to be used as setter for the associated ParamSpec.
Source§

type BuilderFn = fn(_: &str) -> ParamSpecObjectBuilder<'_, TreeViewColumn>

Source§

fn param_spec_builder() -> Self::BuilderFn

Source§

impl Hash for TreeViewColumn

Source§

fn hash<H>(&self, state: &mut H)
where H: Hasher,

Hashes the memory address of this object.

1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for TreeViewColumn

Source§

fn cmp(&self, other: &Self) -> Ordering

Comparison for two GObjects.

Compares the memory addresses of the provided objects.

1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl ParentClassIs for TreeViewColumn

Source§

impl<OT: ObjectType> PartialEq<OT> for TreeViewColumn

Source§

fn eq(&self, other: &OT) -> bool

Equality for two GObjects.

Two GObjects are equal if their memory addresses are equal.

1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<OT: ObjectType> PartialOrd<OT> for TreeViewColumn

Source§

fn partial_cmp(&self, other: &OT) -> Option<Ordering>

Partial comparison for two GObjects.

Compares the memory addresses of the provided objects.

1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl StaticType for TreeViewColumn

Source§

fn static_type() -> Type

Returns the type identifier of Self.
Source§

impl Eq for TreeViewColumn

Source§

impl IsA<Buildable> for TreeViewColumn

Source§

impl IsA<CellLayout> for TreeViewColumn

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<O> BuildableExt for O
where O: IsA<Buildable>,

Source§

fn buildable_id(&self) -> Option<GString>

Gets the ID of the @self object. Read more
Source§

impl<T> Cast for T
where T: ObjectType,

Source§

fn upcast<T>(self) -> T
where T: ObjectType, Self: IsA<T>,

Upcasts an object to a superclass or interface T. Read more
Source§

fn upcast_ref<T>(&self) -> &T
where T: ObjectType, Self: IsA<T>,

Upcasts an object to a reference of its superclass or interface T. Read more
Source§

fn downcast<T>(self) -> Result<T, Self>
where T: ObjectType, Self: MayDowncastTo<T>,

Tries to downcast to a subclass or interface implementor T. Read more
Source§

fn downcast_ref<T>(&self) -> Option<&T>
where T: ObjectType, Self: MayDowncastTo<T>,

Tries to downcast to a reference of its subclass or interface implementor T. Read more
Source§

fn dynamic_cast<T>(self) -> Result<T, Self>
where T: ObjectType,

Tries to cast to an object of type T. This handles upcasting, downcasting and casting between interface and interface implementors. All checks are performed at runtime, while upcast will do many checks at compile-time already. downcast will perform the same checks at runtime as dynamic_cast, but will also ensure some amount of compile-time safety. Read more
Source§

fn dynamic_cast_ref<T>(&self) -> Option<&T>
where T: ObjectType,

Tries to cast to reference to an object of type T. This handles upcasting, downcasting and casting between interface and interface implementors. All checks are performed at runtime, while downcast and upcast will do many checks at compile-time already. Read more
Source§

unsafe fn unsafe_cast<T>(self) -> T
where T: ObjectType,

Casts to T unconditionally. Read more
Source§

unsafe fn unsafe_cast_ref<T>(&self) -> &T
where T: ObjectType,

Casts to &T unconditionally. Read more
Source§

impl<O> CellLayoutExt for O
where O: IsA<CellLayout>,

Source§

fn add_attribute( &self, cell: &impl IsA<CellRenderer>, attribute: &str, column: i32, )

👎Deprecated: Since 4.10
Adds an attribute mapping to the list in @self. Read more
Source§

fn clear(&self)

👎Deprecated: Since 4.10
Unsets all the mappings on all renderers on @self and removes all renderers from @self. Read more
Source§

fn clear_attributes(&self, cell: &impl IsA<CellRenderer>)

👎Deprecated: Since 4.10
Clears all existing attributes previously set with gtk_cell_layout_set_attributes(). Read more
Source§

fn area(&self) -> Option<CellArea>

👎Deprecated: Since 4.10
Returns the underlying CellArea which might be @self if called on a CellArea or might be None if no CellArea is used by @self. Read more
Source§

fn cells(&self) -> Vec<CellRenderer>

👎Deprecated: Since 4.10
Returns the cell renderers which have been added to @self. Read more
Source§

fn pack_end(&self, cell: &impl IsA<CellRenderer>, expand: bool)

👎Deprecated: Since 4.10
Adds the @cell to the end of @self. If @expand is false, then the @cell is allocated no more space than it needs. Any unused space is divided evenly between cells for which @expand is true. Read more
Source§

fn pack_start(&self, cell: &impl IsA<CellRenderer>, expand: bool)

👎Deprecated: Since 4.10
Packs the @cell into the beginning of @self. If @expand is false, then the @cell is allocated no more space than it needs. Any unused space is divided evenly between cells for which @expand is true. Read more
Source§

fn reorder(&self, cell: &impl IsA<CellRenderer>, position: i32)

👎Deprecated: Since 4.10
Re-inserts @cell at @position. Read more
Source§

fn set_cell_data_func<P: Fn(&CellLayout, &CellRenderer, &TreeModel, &TreeIter) + 'static>( &self, cell: &impl IsA<CellRenderer>, func: P, )

👎Deprecated: Since 4.10
Sets the CellLayoutDataFunc to use for @self. Read more
Source§

impl<O> CellLayoutExtManual for O
where O: IsA<CellLayout>,

Source§

fn set_attributes( &self, cell: &impl IsA<CellRenderer>, attributes: &[(&str, i32)], )

👎Deprecated: Since 4.10
Sets the attributes in the parameter list as the attributes of @self. Read more
Source§

fn unset_cell_data_func(&self, cell: &impl IsA<CellRenderer>)

👎Deprecated: Since 4.10
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for T

Source§

unsafe fn from_glib_none_num_as_vec(ptr: *const GList, num: usize) -> Vec<T>

Source§

unsafe fn from_glib_container_num_as_vec(_: *const GList, _: usize) -> Vec<T>

Source§

unsafe fn from_glib_full_num_as_vec(_: *const GList, _: usize) -> Vec<T>

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for T

Source§

unsafe fn from_glib_none_num_as_vec(ptr: *const GPtrArray, num: usize) -> Vec<T>

Source§

unsafe fn from_glib_container_num_as_vec( _: *const GPtrArray, _: usize, ) -> Vec<T>

Source§

unsafe fn from_glib_full_num_as_vec(_: *const GPtrArray, _: usize) -> Vec<T>

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for T

Source§

unsafe fn from_glib_none_num_as_vec(ptr: *const GSList, num: usize) -> Vec<T>

Source§

unsafe fn from_glib_container_num_as_vec(_: *const GSList, _: usize) -> Vec<T>

Source§

unsafe fn from_glib_full_num_as_vec(_: *const GSList, _: usize) -> Vec<T>

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for T

Source§

unsafe fn from_glib_none_num_as_vec(ptr: *mut GList, num: usize) -> Vec<T>

Source§

unsafe fn from_glib_container_num_as_vec(ptr: *mut GList, num: usize) -> Vec<T>

Source§

unsafe fn from_glib_full_num_as_vec(ptr: *mut GList, num: usize) -> Vec<T>

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for T

Source§

unsafe fn from_glib_none_num_as_vec(ptr: *mut GPtrArray, num: usize) -> Vec<T>

Source§

unsafe fn from_glib_container_num_as_vec( ptr: *mut GPtrArray, num: usize, ) -> Vec<T>

Source§

unsafe fn from_glib_full_num_as_vec(ptr: *mut GPtrArray, num: usize) -> Vec<T>

Source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for T

Source§

unsafe fn from_glib_none_num_as_vec(ptr: *mut GSList, num: usize) -> Vec<T>

Source§

unsafe fn from_glib_container_num_as_vec(ptr: *mut GSList, num: usize) -> Vec<T>

Source§

unsafe fn from_glib_full_num_as_vec(ptr: *mut GSList, num: usize) -> Vec<T>

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for T

Source§

unsafe fn from_glib_none_as_vec(ptr: *const GList) -> Vec<T>

Source§

unsafe fn from_glib_container_as_vec(_: *const GList) -> Vec<T>

Source§

unsafe fn from_glib_full_as_vec(_: *const GList) -> Vec<T>

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for T

Source§

unsafe fn from_glib_none_as_vec(ptr: *const GPtrArray) -> Vec<T>

Source§

unsafe fn from_glib_container_as_vec(_: *const GPtrArray) -> Vec<T>

Source§

unsafe fn from_glib_full_as_vec(_: *const GPtrArray) -> Vec<T>

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for T

Source§

unsafe fn from_glib_none_as_vec(ptr: *const GSList) -> Vec<T>

Source§

unsafe fn from_glib_container_as_vec(_: *const GSList) -> Vec<T>

Source§

unsafe fn from_glib_full_as_vec(_: *const GSList) -> Vec<T>

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for T

Source§

unsafe fn from_glib_none_as_vec(ptr: *mut GList) -> Vec<T>

Source§

unsafe fn from_glib_container_as_vec(ptr: *mut GList) -> Vec<T>

Source§

unsafe fn from_glib_full_as_vec(ptr: *mut GList) -> Vec<T>

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for T

Source§

unsafe fn from_glib_none_as_vec(ptr: *mut GPtrArray) -> Vec<T>

Source§

unsafe fn from_glib_container_as_vec(ptr: *mut GPtrArray) -> Vec<T>

Source§

unsafe fn from_glib_full_as_vec(ptr: *mut GPtrArray) -> Vec<T>

Source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for T

Source§

unsafe fn from_glib_none_as_vec(ptr: *mut GSList) -> Vec<T>

Source§

unsafe fn from_glib_container_as_vec(ptr: *mut GSList) -> Vec<T>

Source§

unsafe fn from_glib_full_as_vec(ptr: *mut GSList) -> Vec<T>

Source§

impl<O> GObjectPropertyExpressionExt for O
where O: IsA<Object>,

Source§

fn property_expression(&self, property_name: &str) -> PropertyExpression

Create an expression looking up an object’s property.
Source§

fn property_expression_weak(&self, property_name: &str) -> PropertyExpression

Create an expression looking up an object’s property with a weak reference.
Source§

fn this_expression(property_name: &str) -> PropertyExpression

Create an expression looking up a property in the bound this object.
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoClosureReturnValue for T
where T: Into<Value>,

Source§

impl<U> IsSubclassableExt for U

Source§

impl<T> ObjectExt for T
where T: ObjectType,

Source§

fn is<U>(&self) -> bool
where U: StaticType,

Returns true if the object is an instance of (can be cast to) T.
Source§

fn type_(&self) -> Type

Returns the type of the object.
Source§

fn object_class(&self) -> &Class<Object>

Returns the ObjectClass of the object. Read more
Source§

fn class(&self) -> &Class<T>
where T: IsClass,

Returns the class of the object.
Source§

fn class_of<U>(&self) -> Option<&Class<U>>
where U: IsClass,

Returns the class of the object in the given type T. Read more
Source§

fn interface<U>(&self) -> Option<InterfaceRef<'_, U>>
where U: IsInterface,

Returns the interface T of the object. Read more
Source§

fn set_property(&self, property_name: &str, value: impl Into<Value>)

Sets the property property_name of the object to value value. Read more
Source§

fn set_property_from_value(&self, property_name: &str, value: &Value)

Sets the property property_name of the object to value value. Read more
Source§

fn set_properties(&self, property_values: &[(&str, &dyn ToValue)])

Sets multiple properties of the object at once. Read more
Source§

fn set_properties_from_value(&self, property_values: &[(&str, Value)])

Sets multiple properties of the object at once. Read more
Source§

fn property<V>(&self, property_name: &str) -> V
where V: for<'b> FromValue<'b> + 'static,

Gets the property property_name of the object and cast it to the type V. Read more
Source§

fn property_value(&self, property_name: &str) -> Value

Gets the property property_name of the object. Read more
Source§

fn has_property(&self, property_name: &str) -> bool

Check if the object has a property property_name.
Source§

fn has_property_with_type(&self, property_name: &str, type_: Type) -> bool

Check if the object has a property property_name of the given type_.
Source§

fn property_type(&self, property_name: &str) -> Option<Type>

Get the type of the property property_name of this object. Read more
Source§

fn find_property(&self, property_name: &str) -> Option<ParamSpec>

Get the ParamSpec of the property property_name of this object.
Source§

fn list_properties(&self) -> PtrSlice<ParamSpec>

Return all ParamSpec of the properties of this object.
Source§

fn freeze_notify(&self) -> PropertyNotificationFreezeGuard

Freeze all property notifications until the return guard object is dropped. Read more
Source§

unsafe fn set_qdata<QD>(&self, key: Quark, value: QD)
where QD: 'static,

Set arbitrary data on this object with the given key. Read more
Source§

unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>
where QD: 'static,

Return previously set arbitrary data of this object with the given key. Read more
Source§

unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>
where QD: 'static,

Retrieve previously set arbitrary data of this object with the given key. Read more
Source§

unsafe fn set_data<QD>(&self, key: &str, value: QD)
where QD: 'static,

Set arbitrary data on this object with the given key. Read more
Source§

unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>
where QD: 'static,

Return previously set arbitrary data of this object with the given key. Read more
Source§

unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>
where QD: 'static,

Retrieve previously set arbitrary data of this object with the given key. Read more
Source§

fn block_signal(&self, handler_id: &SignalHandlerId)

Block a given signal handler. Read more
Source§

fn unblock_signal(&self, handler_id: &SignalHandlerId)

Unblock a given signal handler.
Source§

fn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)

Stop emission of the currently emitted signal.
Source§

fn stop_signal_emission_by_name(&self, signal_name: &str)

Stop emission of the currently emitted signal by the (possibly detailed) signal name.
Source§

fn connect<F>( &self, signal_name: &str, after: bool, callback: F, ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,

Connect to the signal signal_name on this object. Read more
Source§

fn connect_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F, ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,

Connect to the signal signal_id on this object. Read more
Source§

fn connect_local<F>( &self, signal_name: &str, after: bool, callback: F, ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value> + 'static,

Connect to the signal signal_name on this object. Read more
Source§

fn connect_local_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F, ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value> + 'static,

Connect to the signal signal_id on this object. Read more
Source§

unsafe fn connect_unsafe<F>( &self, signal_name: &str, after: bool, callback: F, ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value>,

Connect to the signal signal_name on this object. Read more
Source§

unsafe fn connect_unsafe_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F, ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value>,

Connect to the signal signal_id on this object. Read more
Source§

fn connect_closure( &self, signal_name: &str, after: bool, closure: RustClosure, ) -> SignalHandlerId

Connect a closure to the signal signal_name on this object. Read more
Source§

fn connect_closure_id( &self, signal_id: SignalId, details: Option<Quark>, after: bool, closure: RustClosure, ) -> SignalHandlerId

Connect a closure to the signal signal_id on this object. Read more
Source§

fn watch_closure(&self, closure: &impl AsRef<Closure>)

Limits the lifetime of closure to the lifetime of the object. When the object’s reference count drops to zero, the closure will be invalidated. An invalidated closure will ignore any calls to invoke_with_values, or invoke when using Rust closures.
Source§

fn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> R

Emit signal by signal id. Read more
Source§

fn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>

Same as Self::emit but takes Value for the arguments.
Source§

fn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> R

Emit signal by its name. Read more
Source§

fn emit_by_name_with_values( &self, signal_name: &str, args: &[Value], ) -> Option<Value>

Emit signal by its name. Read more
Source§

fn emit_by_name_with_details<R>( &self, signal_name: &str, details: Quark, args: &[&dyn ToValue], ) -> R

Emit signal by its name with details. Read more
Source§

fn emit_by_name_with_details_and_values( &self, signal_name: &str, details: Quark, args: &[Value], ) -> Option<Value>

Emit signal by its name with details. Read more
Source§

fn emit_with_details<R>( &self, signal_id: SignalId, details: Quark, args: &[&dyn ToValue], ) -> R

Emit signal by signal id with details. Read more
Source§

fn emit_with_details_and_values( &self, signal_id: SignalId, details: Quark, args: &[Value], ) -> Option<Value>

Emit signal by signal id with details. Read more
Source§

fn disconnect(&self, handler_id: SignalHandlerId)

Disconnect a previously connected signal handler.
Source§

fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId
where F: Fn(&T, &ParamSpec) + Send + Sync + 'static,

Connect to the notify signal of the object. Read more
Source§

fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId
where F: Fn(&T, &ParamSpec) + 'static,

Connect to the notify signal of the object. Read more
Source§

unsafe fn connect_notify_unsafe<F>( &self, name: Option<&str>, f: F, ) -> SignalHandlerId
where F: Fn(&T, &ParamSpec),

Connect to the notify signal of the object. Read more
Source§

fn notify(&self, property_name: &str)

Notify that the given property has changed its value. Read more
Source§

fn notify_by_pspec(&self, pspec: &ParamSpec)

Notify that the given property has changed its value. Read more
Source§

fn downgrade(&self) -> WeakRef<T>

Downgrade this object to a weak reference.
Source§

fn add_weak_ref_notify<F>(&self, f: F) -> WeakRefNotify<T>
where F: FnOnce() + Send + 'static,

Add a callback to be notified when the Object is disposed.
Source§

fn add_weak_ref_notify_local<F>(&self, f: F) -> WeakRefNotify<T>
where F: FnOnce() + 'static,

Add a callback to be notified when the Object is disposed. Read more
Source§

fn bind_property<'a, 'f, 't, O>( &'a self, source_property: &'a str, target: &'a O, target_property: &'a str, ) -> BindingBuilder<'a, 'f, 't>
where O: ObjectType,

Bind property source_property on this object to the target_property on the target object. Read more
Source§

fn ref_count(&self) -> u32

Returns the strong reference count of this object.
Source§

unsafe fn run_dispose(&self)

Runs the dispose mechanism of the object. Read more
Source§

impl<T> Property for T
where T: HasParamSpec,

Source§

type Value = T

Source§

impl<T> PropertyGet for T
where T: HasParamSpec,

Source§

type Value = T

Source§

fn get<R, F>(&self, f: F) -> R
where F: Fn(&<T as PropertyGet>::Value) -> R,

Source§

impl<T> StaticTypeExt for T
where T: StaticType,

Source§

fn ensure_type()

Ensures that the type has been registered with the type system.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> TransparentType for T

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T> TryFromClosureReturnValue for T
where T: for<'a> FromValue<'a> + StaticType + 'static,

Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<'a, T, C, E> FromValueOptional<'a> for T
where T: FromValue<'a, Checker = C>, C: ValueTypeChecker<Error = ValueTypeMismatchOrNoneError<E>>, E: Error + Send + 'static,

Source§

impl<Super, Sub> MayDowncastTo<Sub> for Super
where Super: IsA<Super>, Sub: IsA<Super>,