Trait gtk::prelude::CellRendererExt
source · [−]pub trait CellRendererExt: 'static {
Show 64 methods
fn activate(
&self,
event: &Event,
widget: &impl IsA<Widget>,
path: &str,
background_area: &Rectangle,
cell_area: &Rectangle,
flags: CellRendererState
) -> bool;
fn aligned_area(
&self,
widget: &impl IsA<Widget>,
flags: CellRendererState,
cell_area: &Rectangle
) -> Rectangle;
fn alignment(&self) -> (f32, f32);
fn fixed_size(&self) -> (i32, i32);
fn padding(&self) -> (i32, i32);
fn preferred_height(&self, widget: &impl IsA<Widget>) -> (i32, i32);
fn preferred_height_for_width(
&self,
widget: &impl IsA<Widget>,
width: i32
) -> (i32, i32);
fn preferred_size(
&self,
widget: &impl IsA<Widget>
) -> (Requisition, Requisition);
fn preferred_width(&self, widget: &impl IsA<Widget>) -> (i32, i32);
fn preferred_width_for_height(
&self,
widget: &impl IsA<Widget>,
height: i32
) -> (i32, i32);
fn request_mode(&self) -> SizeRequestMode;
fn is_sensitive(&self) -> bool;
fn state(
&self,
widget: Option<&impl IsA<Widget>>,
cell_state: CellRendererState
) -> StateFlags;
fn is_visible(&self) -> bool;
fn is_activatable(&self) -> bool;
fn render(
&self,
cr: &Context,
widget: &impl IsA<Widget>,
background_area: &Rectangle,
cell_area: &Rectangle,
flags: CellRendererState
);
fn set_alignment(&self, xalign: f32, yalign: f32);
fn set_fixed_size(&self, width: i32, height: i32);
fn set_padding(&self, xpad: i32, ypad: i32);
fn set_sensitive(&self, sensitive: bool);
fn set_visible(&self, visible: bool);
fn start_editing(
&self,
event: Option<&Event>,
widget: &impl IsA<Widget>,
path: &str,
background_area: &Rectangle,
cell_area: &Rectangle,
flags: CellRendererState
) -> Option<CellEditable>;
fn stop_editing(&self, canceled: bool);
fn set_cell_background(&self, cell_background: Option<&str>);
fn cell_background_rgba(&self) -> Option<RGBA>;
fn set_cell_background_rgba(&self, cell_background_rgba: Option<&RGBA>);
fn is_cell_background_set(&self) -> bool;
fn set_cell_background_set(&self, cell_background_set: bool);
fn is_editing(&self) -> bool;
fn height(&self) -> i32;
fn set_height(&self, height: i32);
fn is_expanded(&self) -> bool;
fn set_is_expanded(&self, is_expanded: bool);
fn is_expander(&self) -> bool;
fn set_is_expander(&self, is_expander: bool);
fn mode(&self) -> CellRendererMode;
fn set_mode(&self, mode: CellRendererMode);
fn width(&self) -> i32;
fn set_width(&self, width: i32);
fn xalign(&self) -> f32;
fn set_xalign(&self, xalign: f32);
fn xpad(&self) -> u32;
fn set_xpad(&self, xpad: u32);
fn yalign(&self) -> f32;
fn set_yalign(&self, yalign: f32);
fn ypad(&self) -> u32;
fn set_ypad(&self, ypad: u32);
fn connect_editing_canceled<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_editing_started<F: Fn(&Self, &CellEditable, TreePath) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_cell_background_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_cell_background_rgba_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_cell_background_set_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_editing_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_height_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_is_expanded_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_is_expander_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_mode_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_sensitive_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_visible_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_width_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_xalign_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_xpad_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_yalign_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_ypad_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId;
}
Expand description
Trait containing all CellRenderer
methods.
Implementors
CellRendererPixbuf
, CellRendererProgress
, CellRendererSpinner
, CellRendererText
, CellRendererToggle
, CellRenderer
Required Methods
Passes an activate event to the cell renderer for possible processing.
Some cell renderers may use events; for example, CellRendererToggle
toggles when it gets a mouse click.
event
a GdkEvent
widget
widget that received the event
path
widget-dependent string representation of the event location;
e.g. for TreeView
, a string representation of TreePath
background_area
background area as passed to render()
cell_area
cell area as passed to render()
flags
render flags
Returns
true
if the event was consumed/handled
fn aligned_area(
&self,
widget: &impl IsA<Widget>,
flags: CellRendererState,
cell_area: &Rectangle
) -> Rectangle
fn aligned_area(
&self,
widget: &impl IsA<Widget>,
flags: CellRendererState,
cell_area: &Rectangle
) -> Rectangle
Gets the aligned area used by self
inside cell_area
. Used for finding
the appropriate edit and focus rectangle.
widget
the Widget
this cell will be rendering to
flags
render flags
cell_area
cell area which would be passed to render()
Returns
aligned_area
the return location for the space inside cell_area
that would acually be used to render.
Retreives a renderer’s natural size when rendered to widget
.
widget
the Widget
this cell will be rendering to
Returns
minimum_size
location to store the minimum size, or None
natural_size
location to store the natural size, or None
Retreives a cell renderers’s minimum and natural height if it were rendered to
widget
with the specified width
.
widget
the Widget
this cell will be rendering to
width
the size which is available for allocation
Returns
minimum_height
location for storing the minimum size, or None
natural_height
location for storing the preferred size, or None
fn preferred_size(
&self,
widget: &impl IsA<Widget>
) -> (Requisition, Requisition)
fn preferred_size(
&self,
widget: &impl IsA<Widget>
) -> (Requisition, Requisition)
Retrieves the minimum and natural size of a cell taking into account the widget’s preference for height-for-width management.
widget
the Widget
this cell will be rendering to
Returns
minimum_size
location for storing the minimum size, or None
natural_size
location for storing the natural size, or None
Retreives a renderer’s natural size when rendered to widget
.
widget
the Widget
this cell will be rendering to
Returns
minimum_size
location to store the minimum size, or None
natural_size
location to store the natural size, or None
Retreives a cell renderers’s minimum and natural width if it were rendered to
widget
with the specified height
.
widget
the Widget
this cell will be rendering to
height
the size which is available for allocation
Returns
minimum_width
location for storing the minimum size, or None
natural_width
location for storing the preferred size, or None
fn request_mode(&self) -> SizeRequestMode
fn request_mode(&self) -> SizeRequestMode
Gets whether the cell renderer prefers a height-for-width layout or a width-for-height layout.
Returns
The SizeRequestMode
preferred by this renderer.
fn is_sensitive(&self) -> bool
fn is_sensitive(&self) -> bool
fn state(
&self,
widget: Option<&impl IsA<Widget>>,
cell_state: CellRendererState
) -> StateFlags
fn state(
&self,
widget: Option<&impl IsA<Widget>>,
cell_state: CellRendererState
) -> StateFlags
Translates the cell renderer state to StateFlags
,
based on the cell renderer and widget sensitivity, and
the given CellRendererState
.
widget
cell_state
cell renderer state
Returns
the widget state flags applying to self
fn is_visible(&self) -> bool
fn is_visible(&self) -> bool
fn is_activatable(&self) -> bool
fn is_activatable(&self) -> bool
Invokes the virtual render function of the CellRenderer
. The three
passed-in rectangles are areas in cr
. Most renderers will draw within
cell_area
; the xalign, yalign, xpad, and ypad fields of the CellRenderer
should be honored with respect to cell_area
. background_area
includes the
blank space around the cell, and also the area containing the tree expander;
so the background_area
rectangles for all cells tile to cover the entire
window
.
cr
a cairo context to draw to
widget
the widget owning window
background_area
entire cell area (including tree expanders and maybe padding on the sides)
cell_area
area normally rendered by a cell renderer
flags
flags that affect rendering
fn set_alignment(&self, xalign: f32, yalign: f32)
fn set_alignment(&self, xalign: f32, yalign: f32)
fn set_fixed_size(&self, width: i32, height: i32)
fn set_fixed_size(&self, width: i32, height: i32)
fn set_padding(&self, xpad: i32, ypad: i32)
fn set_padding(&self, xpad: i32, ypad: i32)
fn set_sensitive(&self, sensitive: bool)
fn set_sensitive(&self, sensitive: bool)
fn set_visible(&self, visible: bool)
fn set_visible(&self, visible: bool)
fn start_editing(
&self,
event: Option<&Event>,
widget: &impl IsA<Widget>,
path: &str,
background_area: &Rectangle,
cell_area: &Rectangle,
flags: CellRendererState
) -> Option<CellEditable>
fn start_editing(
&self,
event: Option<&Event>,
widget: &impl IsA<Widget>,
path: &str,
background_area: &Rectangle,
cell_area: &Rectangle,
flags: CellRendererState
) -> Option<CellEditable>
Starts editing the contents of this self
, through a new CellEditable
widget created by the GtkCellRendererClass.start_editing
virtual function.
event
a GdkEvent
widget
widget that received the event
path
widget-dependent string representation of the event location;
e.g. for TreeView
, a string representation of TreePath
background_area
background area as passed to render()
cell_area
cell area as passed to render()
flags
render flags
Returns
A new CellEditable
for editing this
self
, or None
if editing is not possible
fn stop_editing(&self, canceled: bool)
fn stop_editing(&self, canceled: bool)
Informs the cell renderer that the editing is stopped.
If canceled
is true
, the cell renderer will emit the
signal::CellRenderer::editing-canceled
signal.
This function should be called by cell renderer implementations
in response to the signal::CellEditable::editing-done
signal of
CellEditable
.
canceled
true
if the editing has been canceled
fn set_cell_background(&self, cell_background: Option<&str>)
fn cell_background_rgba(&self) -> Option<RGBA>
fn cell_background_rgba(&self) -> Option<RGBA>
Cell background as a gdk::RGBA
fn set_cell_background_rgba(&self, cell_background_rgba: Option<&RGBA>)
fn set_cell_background_rgba(&self, cell_background_rgba: Option<&RGBA>)
Cell background as a gdk::RGBA
fn is_cell_background_set(&self) -> bool
fn set_cell_background_set(&self, cell_background_set: bool)
fn is_editing(&self) -> bool
fn set_height(&self, height: i32)
fn is_expanded(&self) -> bool
fn set_is_expanded(&self, is_expanded: bool)
fn is_expander(&self) -> bool
fn set_is_expander(&self, is_expander: bool)
fn mode(&self) -> CellRendererMode
fn set_mode(&self, mode: CellRendererMode)
fn set_xalign(&self, xalign: f32)
fn set_yalign(&self, yalign: f32)
fn connect_editing_canceled<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_editing_canceled<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
This signal gets emitted when the user cancels the process of editing a cell. For example, an editable cell renderer could be written to cancel editing when the user presses Escape.
See also: stop_editing()
.
fn connect_editing_started<F: Fn(&Self, &CellEditable, TreePath) + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_editing_started<F: Fn(&Self, &CellEditable, TreePath) + 'static>(
&self,
f: F
) -> SignalHandlerId
This signal gets emitted when a cell starts to be edited.
The intended use of this signal is to do special setup
on editable
, e.g. adding a EntryCompletion
or setting
up additional columns in a ComboBox
.
See CellEditableExt::start_editing()
for information on the lifecycle of
the editable
and a way to do setup that doesn’t depend on the renderer
.
Note that GTK+ doesn’t guarantee that cell renderers will
continue to use the same kind of widget for editing in future
releases, therefore you should check the type of editable
before doing any specific setup, as in the following example:
⚠️ The following code is in C ⚠️
static void
text_editing_started (GtkCellRenderer *cell,
GtkCellEditable *editable,
const gchar *path,
gpointer data)
{
if (GTK_IS_ENTRY (editable))
{
GtkEntry *entry = GTK_ENTRY (editable);
// ... create a GtkEntryCompletion
gtk_entry_set_completion (entry, completion);
}
}
editable
the CellEditable
path
the path identifying the edited cell