Skip to main content

CellAreaExt

Trait CellAreaExt 

Source
pub trait CellAreaExt: IsA<CellArea> + 'static {
Show 46 methods // Provided methods fn activate( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, cell_area: &Rectangle, flags: CellRendererState, edit_only: bool, ) -> bool { ... } fn activate_cell( &self, widget: &impl IsA<Widget>, renderer: &impl IsA<CellRenderer>, event: &Event, cell_area: &Rectangle, flags: CellRendererState, ) -> bool { ... } fn add(&self, renderer: &impl IsA<CellRenderer>) { ... } fn add_focus_sibling( &self, renderer: &impl IsA<CellRenderer>, sibling: &impl IsA<CellRenderer>, ) { ... } fn apply_attributes( &self, tree_model: &impl IsA<TreeModel>, iter: &TreeIter, is_expander: bool, is_expanded: bool, ) { ... } fn attribute_connect( &self, renderer: &impl IsA<CellRenderer>, attribute: &str, column: i32, ) { ... } fn attribute_disconnect( &self, renderer: &impl IsA<CellRenderer>, attribute: &str, ) { ... } fn attribute_get_column( &self, renderer: &impl IsA<CellRenderer>, attribute: &str, ) -> i32 { ... } fn cell_get_property( &self, renderer: &impl IsA<CellRenderer>, property_name: &str, ) -> Value { ... } fn cell_set_property( &self, renderer: &impl IsA<CellRenderer>, property_name: &str, value: &Value, ) { ... } fn copy_context( &self, context: &impl IsA<CellAreaContext>, ) -> Option<CellAreaContext> { ... } fn create_context(&self) -> Option<CellAreaContext> { ... } fn event( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, event: &Event, cell_area: &Rectangle, flags: CellRendererState, ) -> i32 { ... } fn focus(&self, direction: DirectionType) -> bool { ... } fn foreach<P: FnMut(&CellRenderer) -> bool>(&self, callback: P) { ... } fn foreach_alloc<P: FnMut(&CellRenderer, &Rectangle, &Rectangle) -> bool>( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, cell_area: &Rectangle, background_area: &Rectangle, callback: P, ) { ... } fn cell_allocation( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, renderer: &impl IsA<CellRenderer>, cell_area: &Rectangle, ) -> Rectangle { ... } fn cell_at_position( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, cell_area: &Rectangle, x: i32, y: i32, ) -> (CellRenderer, Rectangle) { ... } fn current_path_string(&self) -> Option<GString> { ... } fn edit_widget(&self) -> Option<CellEditable> { ... } fn edited_cell(&self) -> Option<CellRenderer> { ... } fn focus_cell(&self) -> Option<CellRenderer> { ... } fn focus_from_sibling( &self, renderer: &impl IsA<CellRenderer>, ) -> Option<CellRenderer> { ... } fn focus_siblings( &self, renderer: &impl IsA<CellRenderer>, ) -> Vec<CellRenderer> { ... } fn preferred_height( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, ) -> (i32, i32) { ... } fn preferred_height_for_width( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, width: i32, ) -> (i32, i32) { ... } fn preferred_width( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, ) -> (i32, i32) { ... } fn preferred_width_for_height( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, height: i32, ) -> (i32, i32) { ... } fn request_mode(&self) -> SizeRequestMode { ... } fn has_renderer(&self, renderer: &impl IsA<CellRenderer>) -> bool { ... } fn inner_cell_area( &self, widget: &impl IsA<Widget>, cell_area: &Rectangle, ) -> Rectangle { ... } fn is_activatable(&self) -> bool { ... } fn is_focus_sibling( &self, renderer: &impl IsA<CellRenderer>, sibling: &impl IsA<CellRenderer>, ) -> bool { ... } fn remove(&self, renderer: &impl IsA<CellRenderer>) { ... } fn remove_focus_sibling( &self, renderer: &impl IsA<CellRenderer>, sibling: &impl IsA<CellRenderer>, ) { ... } fn render( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, cr: &Context, background_area: &Rectangle, cell_area: &Rectangle, flags: CellRendererState, paint_focus: bool, ) { ... } fn request_renderer( &self, renderer: &impl IsA<CellRenderer>, orientation: Orientation, widget: &impl IsA<Widget>, for_size: i32, ) -> (i32, i32) { ... } fn set_focus_cell(&self, renderer: &impl IsA<CellRenderer>) { ... } fn stop_editing(&self, canceled: bool) { ... } fn connect_add_editable<F: Fn(&Self, &CellRenderer, &CellEditable, &Rectangle, TreePath) + 'static>( &self, f: F, ) -> SignalHandlerId { ... } fn connect_apply_attributes<F: Fn(&Self, &TreeModel, &TreeIter, bool, bool) + 'static>( &self, f: F, ) -> SignalHandlerId { ... } fn connect_focus_changed<F: Fn(&Self, &CellRenderer, TreePath) + 'static>( &self, f: F, ) -> SignalHandlerId { ... } fn connect_remove_editable<F: Fn(&Self, &CellRenderer, &CellEditable) + 'static>( &self, f: F, ) -> SignalHandlerId { ... } fn connect_edit_widget_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId { ... } fn connect_edited_cell_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId { ... } fn connect_focus_cell_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId { ... }
}
Expand description

Trait containing all CellArea methods.

§Implementors

CellAreaBox, CellArea

Provided Methods§

Source

fn activate( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, cell_area: &Rectangle, flags: CellRendererState, edit_only: bool, ) -> bool

Activates self, usually by activating the currently focused cell, however some subclasses which embed widgets in the area can also activate a widget if it currently has the focus.

§context

the CellAreaContext in context with the current row data

§widget

the Widget that self is rendering on

§cell_area

the size and location of self relative to widget’s allocation

§flags

the CellRendererState flags for self for this row of data.

§edit_only

if true then only cell renderers that are CellRendererMode::Editable will be activated.

§Returns

Whether self was successfully activated.

Source

fn activate_cell( &self, widget: &impl IsA<Widget>, renderer: &impl IsA<CellRenderer>, event: &Event, cell_area: &Rectangle, flags: CellRendererState, ) -> bool

activate() implementation.

§widget

the Widget that self is rendering onto

§renderer

the CellRenderer in self to activate

§event

the GdkEvent for which cell activation should occur

§cell_area

the gdk::Rectangle in widget relative coordinates of renderer for the current row.

§flags

the CellRendererState for renderer

§Returns

whether cell activation was successful

Source

fn add(&self, renderer: &impl IsA<CellRenderer>)

Adds renderer to self with the default child cell properties.

§renderer

the CellRenderer to add to self

Source

fn add_focus_sibling( &self, renderer: &impl IsA<CellRenderer>, sibling: &impl IsA<CellRenderer>, )

Adds sibling to renderer’s focusable area, focus will be drawn around renderer and all of its siblings if renderer can focus for a given row.

Events handled by focus siblings can also activate the given focusable renderer.

§renderer

the CellRenderer expected to have focus

§sibling

the CellRenderer to add to renderer’s focus area

Source

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

Applies any connected attributes to the renderers in self by pulling the values from tree_model.

§tree_model

the TreeModel to pull values from

§iter

the TreeIter in tree_model to apply values for

§is_expander

whether iter has children

§is_expanded

whether iter is expanded in the view and children are visible

Source

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

Connects an attribute to apply values from column for the TreeModel in use.

§renderer

the CellRenderer to connect an attribute for

§attribute

the attribute name

§column

the TreeModel column to fetch attribute values from

Source

fn attribute_disconnect( &self, renderer: &impl IsA<CellRenderer>, attribute: &str, )

Disconnects attribute for the renderer in self so that attribute will no longer be updated with values from the model.

§renderer

the CellRenderer to disconnect an attribute for

§attribute

the attribute name

Source

fn attribute_get_column( &self, renderer: &impl IsA<CellRenderer>, attribute: &str, ) -> i32

Returns the model column that an attribute has been mapped to, or -1 if the attribute is not mapped.

§renderer

a CellRenderer

§attribute

an attribute on the renderer

§Returns

the model column, or -1

Source

fn cell_get_property( &self, renderer: &impl IsA<CellRenderer>, property_name: &str, ) -> Value

Gets the value of a cell property for renderer in self.

§renderer

a CellRenderer inside self

§property_name

the name of the property to get

§Returns
§value

a location to return the value

Source

fn cell_set_property( &self, renderer: &impl IsA<CellRenderer>, property_name: &str, value: &Value, )

Sets a cell property for renderer in self.

§renderer

a CellRenderer inside self

§property_name

the name of the cell property to set

§value

the value to set the cell property to

Source

fn copy_context( &self, context: &impl IsA<CellAreaContext>, ) -> Option<CellAreaContext>

This is sometimes needed for cases where rows need to share alignments in one orientation but may be separately grouped in the opposing orientation.

For instance, IconView creates all icons (rows) to have the same width and the cells theirin to have the same horizontal alignments. However each row of icons may have a separate collective height. IconView uses this to request the heights of each row based on a context which was already used to request all the row widths that are to be displayed.

§context

the CellAreaContext to copy

§Returns

a newly created CellAreaContext copy of context.

Source

fn create_context(&self) -> Option<CellAreaContext>

Creates a CellAreaContext to be used with self for all purposes. CellAreaContext stores geometry information for rows for which it was operated on, it is important to use the same context for the same row of data at all times (i.e. one should render and handle events with the same CellAreaContext which was used to request the size of those rows of data).

§Returns

a newly created CellAreaContext which can be used with self.

Source

fn event( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, event: &Event, cell_area: &Rectangle, flags: CellRendererState, ) -> i32

Delegates event handling to a CellArea.

§context

the CellAreaContext for this row of data.

§widget

the Widget that self is rendering to

§event

the GdkEvent to handle

§cell_area

the widget relative coordinates for self

§flags

the CellRendererState for self in this row.

§Returns

true if the event was handled by self.

Source

fn focus(&self, direction: DirectionType) -> bool

This should be called by the self’s owning layout widget when focus is to be passed to self, or moved within self for a given direction and row data.

Implementing CellArea classes should implement this method to receive and navigate focus in its own way particular to how it lays out cells.

§direction

the DirectionType

§Returns

true if focus remains inside self as a result of this call.

Source

fn foreach<P: FnMut(&CellRenderer) -> bool>(&self, callback: P)

Calls callback for every CellRenderer in self.

§callback

the GtkCellCallback to call

§callback_data

user provided data pointer

Source

fn foreach_alloc<P: FnMut(&CellRenderer, &Rectangle, &Rectangle) -> bool>( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, cell_area: &Rectangle, background_area: &Rectangle, callback: P, )

Calls callback for every CellRenderer in self with the allocated rectangle inside cell_area.

§context

the CellAreaContext for this row of data.

§widget

the Widget that self is rendering to

§cell_area

the widget relative coordinates and size for self

§background_area

the widget relative coordinates of the background area

§callback

the GtkCellAllocCallback to call

§callback_data

user provided data pointer

Source

fn cell_allocation( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, renderer: &impl IsA<CellRenderer>, cell_area: &Rectangle, ) -> Rectangle

Derives the allocation of renderer inside self if self were to be renderered in cell_area.

§context

the CellAreaContext used to hold sizes for self.

§widget

the Widget that self is rendering on

§renderer

the CellRenderer to get the allocation for

§cell_area

the whole allocated area for self in widget for this row

§Returns
§allocation

where to store the allocation for renderer

Source

fn cell_at_position( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, cell_area: &Rectangle, x: i32, y: i32, ) -> (CellRenderer, Rectangle)

Gets the CellRenderer at x and y coordinates inside self and optionally returns the full cell allocation for it inside cell_area.

§context

the CellAreaContext used to hold sizes for self.

§widget

the Widget that self is rendering on

§cell_area

the whole allocated area for self in widget for this row

§x

the x position

§y

the y position

§Returns

the CellRenderer at x and y.

§alloc_area

where to store the inner allocated area of the returned cell renderer, or None.

Source

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

Gets the current TreePath string for the currently applied TreeIter, this is implicitly updated when apply_attributes() is called and can be used to interact with renderers from CellArea subclasses.

§Returns

The current TreePath string for the current attributes applied to self. This string belongs to the area and should not be freed.

Source

fn edit_widget(&self) -> Option<CellEditable>

Gets the CellEditable widget currently used to edit the currently edited cell.

§Returns

The currently active CellEditable widget

Source

fn edited_cell(&self) -> Option<CellRenderer>

Gets the CellRenderer in self that is currently being edited.

§Returns

The currently edited CellRenderer

Source

fn focus_cell(&self) -> Option<CellRenderer>

Retrieves the currently focused cell for self

§Returns

the currently focused cell in self.

Source

fn focus_from_sibling( &self, renderer: &impl IsA<CellRenderer>, ) -> Option<CellRenderer>

Gets the CellRenderer which is expected to be focusable for which renderer is, or may be a sibling.

This is handy for CellArea subclasses when handling events, after determining the renderer at the event location it can then chose to activate the focus cell for which the event cell may have been a sibling.

§renderer

the CellRenderer

§Returns

the CellRenderer for which renderer is a sibling, or None.

Source

fn focus_siblings(&self, renderer: &impl IsA<CellRenderer>) -> Vec<CellRenderer>

Gets the focus sibling cell renderers for renderer.

§renderer

the CellRenderer expected to have focus

§Returns

A GList of GtkCellRenderers. The returned list is internal and should not be freed.

Source

fn preferred_height( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, ) -> (i32, i32)

Retrieves a cell area’s initial minimum and natural height.

self will store some geometrical information in context along the way; when requesting sizes over an arbitrary number of rows, it’s not important to check the minimum_height and natural_height of this call but rather to consult CellAreaContextExt::preferred_height() after a series of requests.

§context

the CellAreaContext to perform this request with

§widget

the Widget where self will be rendering

§Returns
§minimum_height

location to store the minimum height, or None

§natural_height

location to store the natural height, or None

Source

fn preferred_height_for_width( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, width: i32, ) -> (i32, i32)

Retrieves a cell area’s minimum and natural height if it would be given the specified width.

self stores some geometrical information in context along the way while calling preferred_width(). It’s important to perform a series of preferred_width() requests with context first and then call preferred_height_for_width() on each cell area individually to get the height for width of each fully requested row.

If at some point, the width of a single row changes, it should be requested with preferred_width() again and then the full width of the requested rows checked again with CellAreaContextExt::preferred_width().

§context

the CellAreaContext which has already been requested for widths.

§widget

the Widget where self will be rendering

§width

the width for which to check the height of this area

§Returns
§minimum_height

location to store the minimum height, or None

§natural_height

location to store the natural height, or None

Source

fn preferred_width( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, ) -> (i32, i32)

Retrieves a cell area’s initial minimum and natural width.

self will store some geometrical information in context along the way; when requesting sizes over an arbitrary number of rows, it’s not important to check the minimum_width and natural_width of this call but rather to consult CellAreaContextExt::preferred_width() after a series of requests.

§context

the CellAreaContext to perform this request with

§widget

the Widget where self will be rendering

§Returns
§minimum_width

location to store the minimum width, or None

§natural_width

location to store the natural width, or None

Source

fn preferred_width_for_height( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, height: i32, ) -> (i32, i32)

Retrieves a cell area’s minimum and natural width if it would be given the specified height.

self stores some geometrical information in context along the way while calling preferred_height(). It’s important to perform a series of preferred_height() requests with context first and then call preferred_width_for_height() on each cell area individually to get the height for width of each fully requested row.

If at some point, the height of a single row changes, it should be requested with preferred_height() again and then the full height of the requested rows checked again with CellAreaContextExt::preferred_height().

§context

the CellAreaContext which has already been requested for widths.

§widget

the Widget where self will be rendering

§height

the height for which to check the width of this area

§Returns
§minimum_width

location to store the minimum width, or None

§natural_width

location to store the natural width, or None

Source

fn request_mode(&self) -> SizeRequestMode

Gets whether the area prefers a height-for-width layout or a width-for-height layout.

§Returns

The SizeRequestMode preferred by self.

Source

fn has_renderer(&self, renderer: &impl IsA<CellRenderer>) -> bool

Checks if self contains renderer.

§renderer

the CellRenderer to check

§Returns

true if renderer is in the self.

Source

fn inner_cell_area( &self, widget: &impl IsA<Widget>, cell_area: &Rectangle, ) -> Rectangle

This is a convenience function for CellArea implementations to get the inner area where a given CellRenderer will be rendered. It removes any padding previously added by request_renderer().

§widget

the Widget that self is rendering onto

§cell_area

the widget relative coordinates where one of self’s cells is to be placed

§Returns
§inner_area

the return location for the inner cell area

Source

fn is_activatable(&self) -> bool

Returns whether the area can do anything when activated, after applying new attributes to self.

§Returns

whether self can do anything when activated.

Source

fn is_focus_sibling( &self, renderer: &impl IsA<CellRenderer>, sibling: &impl IsA<CellRenderer>, ) -> bool

Returns whether sibling is one of renderer’s focus siblings (see add_focus_sibling()).

§renderer

the CellRenderer expected to have focus

§sibling

the CellRenderer to check against renderer’s sibling list

§Returns

true if sibling is a focus sibling of renderer

Source

fn remove(&self, renderer: &impl IsA<CellRenderer>)

Removes renderer from self.

§renderer

the CellRenderer to remove from self

Source

fn remove_focus_sibling( &self, renderer: &impl IsA<CellRenderer>, sibling: &impl IsA<CellRenderer>, )

Removes sibling from renderer’s focus sibling list (see add_focus_sibling()).

§renderer

the CellRenderer expected to have focus

§sibling

the CellRenderer to remove from renderer’s focus area

Source

fn render( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, cr: &Context, background_area: &Rectangle, cell_area: &Rectangle, flags: CellRendererState, paint_focus: bool, )

Renders self’s cells according to self’s layout onto widget at the given coordinates.

§context

the CellAreaContext for this row of data.

§widget

the Widget that self is rendering to

§cr

the cairo::Context to render with

§background_area

the widget relative coordinates for self’s background

§cell_area

the widget relative coordinates for self

§flags

the CellRendererState for self in this row.

§paint_focus

whether self should paint focus on focused cells for focused rows or not.

Source

fn request_renderer( &self, renderer: &impl IsA<CellRenderer>, orientation: Orientation, widget: &impl IsA<Widget>, for_size: i32, ) -> (i32, i32)

This is a convenience function for CellArea implementations to request size for cell renderers. It’s important to use this function to request size and then use inner_cell_area() at render and event time since this function will add padding around the cell for focus painting.

§renderer

the CellRenderer to request size for

§orientation

the Orientation in which to request size

§widget

the Widget that self is rendering onto

§for_size

the allocation contextual size to request for, or -1 if the base request for the orientation is to be returned.

§Returns
§minimum_size

location to store the minimum size, or None

§natural_size

location to store the natural size, or None

Source

fn set_focus_cell(&self, renderer: &impl IsA<CellRenderer>)

Explicitly sets the currently focused cell to renderer.

This is generally called by implementations of GtkCellAreaClass.focus() or GtkCellAreaClass.event(), however it can also be used to implement functions such as TreeViewExt::set_cursor_on_cell().

§renderer

the CellRenderer to give focus to

Source

fn stop_editing(&self, canceled: bool)

Explicitly stops the editing of the currently edited cell.

If canceled is true, the currently edited cell renderer will emit the ::editing-canceled signal, otherwise the the ::editing-done signal will be emitted on the current edit widget.

See edited_cell() and edit_widget().

§canceled

whether editing was canceled.

Source

fn connect_add_editable<F: Fn(&Self, &CellRenderer, &CellEditable, &Rectangle, TreePath) + 'static>( &self, f: F, ) -> SignalHandlerId

Indicates that editing has started on renderer and that editable should be added to the owning cell-layouting widget at cell_area.

§renderer

the CellRenderer that started the edited

§editable

the CellEditable widget to add

§cell_area

the Widget relative gdk::Rectangle coordinates where editable should be added

§path

the TreePath string this edit was initiated for

Source

fn connect_apply_attributes<F: Fn(&Self, &TreeModel, &TreeIter, bool, bool) + 'static>( &self, f: F, ) -> SignalHandlerId

This signal is emitted whenever applying attributes to area from model

§model

the TreeModel to apply the attributes from

§iter

the TreeIter indicating which row to apply the attributes of

§is_expander

whether the view shows children for this row

§is_expanded

whether the view is currently showing the children of this row

Source

fn connect_focus_changed<F: Fn(&Self, &CellRenderer, TreePath) + 'static>( &self, f: F, ) -> SignalHandlerId

Indicates that focus changed on this area. This signal is emitted either as a result of focus handling or event handling.

It’s possible that the signal is emitted even if the currently focused renderer did not change, this is because focus may change to the same renderer in the same cell area for a different row of data.

§renderer

the CellRenderer that has focus

§path

the current TreePath string set for area

Source

fn connect_remove_editable<F: Fn(&Self, &CellRenderer, &CellEditable) + 'static>( &self, f: F, ) -> SignalHandlerId

Indicates that editing finished on renderer and that editable should be removed from the owning cell-layouting widget.

§renderer

the CellRenderer that finished editeding

§editable

the CellEditable widget to remove

Source

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

Source

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

Source

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

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§