pub struct CellArea { /* private fields */ }
Expand description
List views use widgets for displaying their
contents
An abstract class for laying out CellRenderer
s
The CellArea
is an abstract class for CellLayout
widgets (also referred to as “layouting widgets”) to interface with
an arbitrary number of CellRenderer
s and interact with the user
for a given TreeModel
row.
The cell area handles events, focus navigation, drawing and size requests and allocations for a given row of data.
Usually users dont have to interact with the CellArea
directly
unless they are implementing a cell-layouting widget themselves.
§Requesting area sizes
As outlined in
GtkWidget’s geometry management section,
GTK uses a height-for-width
geometry management system to compute the sizes of widgets and user
interfaces. CellArea
uses the same semantics to calculate the
size of an area for an arbitrary number of TreeModel
rows.
When requesting the size of a cell area one needs to calculate
the size for a handful of rows, and this will be done differently by
different layouting widgets. For instance a TreeViewColumn
always lines up the areas from top to bottom while a IconView
on the other hand might enforce that all areas received the same
width and wrap the areas around, requesting height for more cell
areas when allocated less width.
It’s also important for areas to maintain some cell
alignments with areas rendered for adjacent rows (cells can
appear “columnized” inside an area even when the size of
cells are different in each row). For this reason the CellArea
uses a CellAreaContext
object to store the alignments
and sizes along the way (as well as the overall largest minimum
and natural size for all the rows which have been calculated
with the said context).
The CellAreaContext
is an opaque object specific to the
CellArea
which created it (see CellAreaExt::create_context()
).
The owning cell-layouting widget can create as many contexts as
it wishes to calculate sizes of rows which should receive the
same size in at least one orientation (horizontally or vertically),
However, it’s important that the same CellAreaContext
which
was used to request the sizes for a given TreeModel
row be
used when rendering or processing events for that row.
In order to request the width of all the rows at the root level
of a TreeModel
one would do the following:
⚠️ The following code is in c ⚠️
GtkTreeIter iter;
int minimum_width;
int natural_width;
valid = gtk_tree_model_get_iter_first (model, &iter);
while (valid)
{
gtk_cell_area_apply_attributes (area, model, &iter, FALSE, FALSE);
gtk_cell_area_get_preferred_width (area, context, widget, NULL, NULL);
valid = gtk_tree_model_iter_next (model, &iter);
}
gtk_cell_area_context_get_preferred_width (context, &minimum_width, &natural_width);
Note that in this example it’s not important to observe the
returned minimum and natural width of the area for each row
unless the cell-layouting object is actually interested in the
widths of individual rows. The overall width is however stored
in the accompanying CellAreaContext
object and can be consulted
at any time.
This can be useful since CellLayout
widgets usually have to
support requesting and rendering rows in treemodels with an
exceedingly large amount of rows. The CellLayout
widget in
that case would calculate the required width of the rows in an
idle or timeout source (see timeout_add()
) and when the widget
is requested its actual width in WidgetImpl::measure()
it can simply consult the width accumulated so far in the
CellAreaContext
object.
A simple example where rows are rendered from top to bottom and take up the full width of the layouting widget would look like:
⚠️ The following code is in c ⚠️
static void
foo_get_preferred_width (GtkWidget *widget,
int *minimum_size,
int *natural_size)
{
Foo *self = FOO (widget);
FooPrivate *priv = foo_get_instance_private (self);
foo_ensure_at_least_one_handfull_of_rows_have_been_requested (self);
gtk_cell_area_context_get_preferred_width (priv->context, minimum_size, natural_size);
}
In the above example the Foo
widget has to make sure that some
row sizes have been calculated (the amount of rows that Foo
judged
was appropriate to request space for in a single timeout iteration)
before simply returning the amount of space required by the area via
the CellAreaContext
.
Requesting the height for width (or width for height) of an area is
a similar task except in this case the CellAreaContext
does not
store the data (actually, it does not know how much space the layouting
widget plans to allocate it for every row. It’s up to the layouting
widget to render each row of data with the appropriate height and
width which was requested by the CellArea
).
In order to request the height for width of all the rows at the
root level of a TreeModel
one would do the following:
⚠️ The following code is in c ⚠️
GtkTreeIter iter;
int minimum_height;
int natural_height;
int full_minimum_height = 0;
int full_natural_height = 0;
valid = gtk_tree_model_get_iter_first (model, &iter);
while (valid)
{
gtk_cell_area_apply_attributes (area, model, &iter, FALSE, FALSE);
gtk_cell_area_get_preferred_height_for_width (area, context, widget,
width, &minimum_height, &natural_height);
if (width_is_for_allocation)
cache_row_height (&iter, minimum_height, natural_height);
full_minimum_height += minimum_height;
full_natural_height += natural_height;
valid = gtk_tree_model_iter_next (model, &iter);
}
Note that in the above example we would need to cache the heights returned for each row so that we would know what sizes to render the areas for each row. However we would only want to really cache the heights if the request is intended for the layouting widgets real allocation.
In some cases the layouting widget is requested the height for an
arbitrary for_width, this is a special case for layouting widgets
who need to request size for tens of thousands of rows. For this
case it’s only important that the layouting widget calculate
one reasonably sized chunk of rows and return that height
synchronously. The reasoning here is that any layouting widget is
at least capable of synchronously calculating enough height to fill
the screen height (or scrolled window height) in response to a single
call to WidgetImpl::measure()
. Returning
a perfect height for width that is larger than the screen area is
inconsequential since after the layouting receives an allocation
from a scrolled window it simply continues to drive the scrollbar
values while more and more height is required for the row heights
that are calculated in the background.
§Rendering Areas
Once area sizes have been acquired at least for the rows in the
visible area of the layouting widget they can be rendered at
WidgetImpl::snapshot()
time.
A crude example of how to render all the rows at the root level runs as follows:
⚠️ The following code is in c ⚠️
GtkAllocation allocation;
GdkRectangle cell_area = { 0, };
GtkTreeIter iter;
int minimum_width;
int natural_width;
gtk_widget_get_allocation (widget, &allocation);
cell_area.width = allocation.width;
valid = gtk_tree_model_get_iter_first (model, &iter);
while (valid)
{
cell_area.height = get_cached_height_for_row (&iter);
gtk_cell_area_apply_attributes (area, model, &iter, FALSE, FALSE);
gtk_cell_area_render (area, context, widget, cr,
&cell_area, &cell_area, state_flags, FALSE);
cell_area.y += cell_area.height;
valid = gtk_tree_model_iter_next (model, &iter);
}
Note that the cached height in this example really depends on how
the layouting widget works. The layouting widget might decide to
give every row its minimum or natural height or, if the model content
is expected to fit inside the layouting widget without scrolling, it
would make sense to calculate the allocation for each row at
the time the widget is allocated using distribute_natural_allocation()
.
§Handling Events and Driving Keyboard Focus
Passing events to the area is as simple as handling events on any
normal widget and then passing them to the CellAreaExt::event()
API as they come in. Usually CellArea
is only interested in
button events, however some customized derived areas can be implemented
who are interested in handling other events. Handling an event can
trigger the focus-changed
signal to fire; as well
as add-editable
in the case that an editable cell
was clicked and needs to start editing. You can call
CellAreaExt::stop_editing()
at any time to cancel any cell editing
that is currently in progress.
The CellArea
drives keyboard focus from cell to cell in a way
similar to Widget
. For layouting widgets that support giving
focus to cells it’s important to remember to pass GTK_CELL_RENDERER_FOCUSED
to the area functions for the row that has focus and to tell the
area to paint the focus at render time.
Layouting widgets that accept focus on cells should implement the
WidgetImpl::focus()
virtual method. The layouting widget is always
responsible for knowing where TreeModel
rows are rendered inside
the widget, so at WidgetImpl::focus()
time the layouting widget
should use the CellArea
methods to navigate focus inside the area
and then observe the DirectionType
to pass the focus to adjacent
rows and areas.
A basic example of how the WidgetImpl::focus()
virtual method
should be implemented:
static gboolean
foo_focus (GtkWidget *widget,
GtkDirectionType direction)
{
Foo *self = FOO (widget);
FooPrivate *priv = foo_get_instance_private (self);
int focus_row = priv->focus_row;
gboolean have_focus = FALSE;
if (!gtk_widget_has_focus (widget))
gtk_widget_grab_focus (widget);
valid = gtk_tree_model_iter_nth_child (priv->model, &iter, NULL, priv->focus_row);
while (valid)
{
gtk_cell_area_apply_attributes (priv->area, priv->model, &iter, FALSE, FALSE);
if (gtk_cell_area_focus (priv->area, direction))
{
priv->focus_row = focus_row;
have_focus = TRUE;
break;
}
else
{
if (direction == GTK_DIR_RIGHT ||
direction == GTK_DIR_LEFT)
break;
else if (direction == GTK_DIR_UP ||
direction == GTK_DIR_TAB_BACKWARD)
{
if (focus_row == 0)
break;
else
{
focus_row--;
valid = gtk_tree_model_iter_nth_child (priv->model, &iter, NULL, focus_row);
}
}
else
{
if (focus_row == last_row)
break;
else
{
focus_row++;
valid = gtk_tree_model_iter_next (priv->model, &iter);
}
}
}
}
return have_focus;
}
Note that the layouting widget is responsible for matching the
DirectionType
values to the way it lays out its cells.
§Cell Properties
The CellArea
introduces cell properties for CellRenderer
s.
This provides some general interfaces for defining the relationship
cell areas have with their cells. For instance in a CellAreaBox
a cell might “expand” and receive extra space when the area is allocated
more than its full natural request, or a cell might be configured to “align”
with adjacent rows which were requested and rendered with the same
CellAreaContext
.
Use [CellAreaClassExt::install_cell_property()
][crate::subclass::prelude::CellAreaClassExt::install_cell_property()] to install cell
properties for a cell area class and CellAreaClassExt::find_cell_property()
or CellAreaClassExt::list_cell_properties()
to get information about
existing cell properties.
To set the value of a cell property, use [CellAreaExtManual::cell_set_property()
][crate::prelude::CellAreaExtManual::cell_set_property()],
Gtk::CellArea::cell_set()
or Gtk::CellArea::cell_set_valist()
. To obtain
the value of a cell property, use [CellAreaExtManual::cell_get_property()
][crate::prelude::CellAreaExtManual::cell_get_property()]
Gtk::CellArea::cell_get()
or Gtk::CellArea::cell_get_valist()
.
This is an Abstract Base Class, you cannot instantiate it.
§Properties
§edit-widget
The widget currently editing the edited cell
This property is read-only and only changes as a result of a call gtk_cell_area_activate_cell().
Readable
§edited-cell
The cell in the area that is currently edited
This property is read-only and only changes as a result of a call gtk_cell_area_activate_cell().
Readable
§focus-cell
The cell in the area that currently has focus
Readable | Writeable
§Signals
§add-editable
Indicates that editing has started on @renderer and that @editable should be added to the owning cell-layouting widget at @cell_area.
§apply-attributes
This signal is emitted whenever applying attributes to @area from @model
§focus-changed
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.
§remove-editable
Indicates that editing finished on @renderer and that @editable should be removed from the owning cell-layouting widget.
§Implements
CellAreaExt
, [trait@glib::ObjectExt
], BuildableExt
, CellLayoutExt
, CellAreaExtManual
, CellLayoutExtManual
Implementations§
Trait Implementations§
source§impl HasParamSpec for CellArea
impl HasParamSpec for CellArea
source§impl<T: CellAreaImpl> IsSubclassable<T> for CellArea
impl<T: CellAreaImpl> IsSubclassable<T> for CellArea
source§fn class_init(class: &mut Class<Self>)
fn class_init(class: &mut Class<Self>)
source§fn instance_init(instance: &mut InitializingObject<T>)
fn instance_init(instance: &mut InitializingObject<T>)
source§impl Ord for CellArea
impl Ord for CellArea
source§impl<OT: ObjectType> PartialEq<OT> for CellArea
impl<OT: ObjectType> PartialEq<OT> for CellArea
source§impl<OT: ObjectType> PartialOrd<OT> for CellArea
impl<OT: ObjectType> PartialOrd<OT> for CellArea
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl StaticType for CellArea
impl StaticType for CellArea
source§fn static_type() -> Type
fn static_type() -> Type
Self
.impl Eq for CellArea
impl IsA<Buildable> for CellArea
impl IsA<CellArea> for CellAreaBox
impl IsA<CellLayout> for CellArea
Auto Trait Implementations§
impl Freeze for CellArea
impl RefUnwindSafe for CellArea
impl !Send for CellArea
impl !Sync for CellArea
impl Unpin for CellArea
impl UnwindSafe for CellArea
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<O> BuildableExt for O
impl<O> BuildableExt for O
source§impl<T> Cast for Twhere
T: ObjectType,
impl<T> Cast for Twhere
T: ObjectType,
source§fn upcast<T>(self) -> Twhere
T: ObjectType,
Self: IsA<T>,
fn upcast<T>(self) -> Twhere
T: ObjectType,
Self: IsA<T>,
T
. Read moresource§fn upcast_ref<T>(&self) -> &Twhere
T: ObjectType,
Self: IsA<T>,
fn upcast_ref<T>(&self) -> &Twhere
T: ObjectType,
Self: IsA<T>,
T
. Read moresource§fn downcast<T>(self) -> Result<T, Self>where
T: ObjectType,
Self: MayDowncastTo<T>,
fn downcast<T>(self) -> Result<T, Self>where
T: ObjectType,
Self: MayDowncastTo<T>,
T
. Read moresource§fn downcast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
Self: MayDowncastTo<T>,
fn downcast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
Self: MayDowncastTo<T>,
T
. Read moresource§fn dynamic_cast<T>(self) -> Result<T, Self>where
T: ObjectType,
fn dynamic_cast<T>(self) -> Result<T, Self>where
T: ObjectType,
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 moresource§fn dynamic_cast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
fn dynamic_cast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
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 moresource§unsafe fn unsafe_cast<T>(self) -> Twhere
T: ObjectType,
unsafe fn unsafe_cast<T>(self) -> Twhere
T: ObjectType,
T
unconditionally. Read moresource§unsafe fn unsafe_cast_ref<T>(&self) -> &Twhere
T: ObjectType,
unsafe fn unsafe_cast_ref<T>(&self) -> &Twhere
T: ObjectType,
&T
unconditionally. Read moresource§impl<O> CellAreaExt for O
impl<O> CellAreaExt for O
source§fn activate(
&self,
context: &impl IsA<CellAreaContext>,
widget: &impl IsA<Widget>,
cell_area: &Rectangle,
flags: CellRendererState,
edit_only: bool
) -> bool
fn activate( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, cell_area: &Rectangle, flags: CellRendererState, edit_only: bool ) -> bool
source§fn activate_cell(
&self,
widget: &impl IsA<Widget>,
renderer: &impl IsA<CellRenderer>,
event: impl AsRef<Event>,
cell_area: &Rectangle,
flags: CellRendererState
) -> bool
fn activate_cell( &self, widget: &impl IsA<Widget>, renderer: &impl IsA<CellRenderer>, event: impl AsRef<Event>, cell_area: &Rectangle, flags: CellRendererState ) -> bool
source§fn add(&self, renderer: &impl IsA<CellRenderer>)
fn add(&self, renderer: &impl IsA<CellRenderer>)
source§fn add_focus_sibling(
&self,
renderer: &impl IsA<CellRenderer>,
sibling: &impl IsA<CellRenderer>
)
fn add_focus_sibling( &self, renderer: &impl IsA<CellRenderer>, sibling: &impl IsA<CellRenderer> )
source§fn apply_attributes(
&self,
tree_model: &impl IsA<TreeModel>,
iter: &TreeIter,
is_expander: bool,
is_expanded: bool
)
fn apply_attributes( &self, tree_model: &impl IsA<TreeModel>, iter: &TreeIter, is_expander: bool, is_expanded: bool )
source§fn attribute_connect(
&self,
renderer: &impl IsA<CellRenderer>,
attribute: &str,
column: i32
)
fn attribute_connect( &self, renderer: &impl IsA<CellRenderer>, attribute: &str, column: i32 )
source§fn attribute_disconnect(
&self,
renderer: &impl IsA<CellRenderer>,
attribute: &str
)
fn attribute_disconnect( &self, renderer: &impl IsA<CellRenderer>, attribute: &str )
source§fn attribute_get_column(
&self,
renderer: &impl IsA<CellRenderer>,
attribute: &str
) -> i32
fn attribute_get_column( &self, renderer: &impl IsA<CellRenderer>, attribute: &str ) -> i32
source§fn copy_context(&self, context: &impl IsA<CellAreaContext>) -> CellAreaContext
fn copy_context(&self, context: &impl IsA<CellAreaContext>) -> CellAreaContext
source§fn create_context(&self) -> CellAreaContext
fn create_context(&self) -> CellAreaContext
CellArea
Context to be used with @self for
all purposes. CellArea
Context 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 CellArea
Context
which was used to request the size of those rows of data). Read moresource§fn event(
&self,
context: &impl IsA<CellAreaContext>,
widget: &impl IsA<Widget>,
event: impl AsRef<Event>,
cell_area: &Rectangle,
flags: CellRendererState
) -> i32
fn event( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, event: impl AsRef<Event>, cell_area: &Rectangle, flags: CellRendererState ) -> i32
source§fn focus(&self, direction: DirectionType) -> bool
fn focus(&self, direction: DirectionType) -> bool
source§fn foreach<P: FnMut(&CellRenderer) -> bool>(&self, callback: P)
fn foreach<P: FnMut(&CellRenderer) -> bool>(&self, callback: P)
CellRenderer
in @self. Read moresource§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 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 )
CellRenderer
in @self with the
allocated rectangle inside @cell_area. Read moresource§fn cell_allocation(
&self,
context: &impl IsA<CellAreaContext>,
widget: &impl IsA<Widget>,
renderer: &impl IsA<CellRenderer>,
cell_area: &Rectangle
) -> Rectangle
fn cell_allocation( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, renderer: &impl IsA<CellRenderer>, cell_area: &Rectangle ) -> Rectangle
source§fn cell_at_position(
&self,
context: &impl IsA<CellAreaContext>,
widget: &impl IsA<Widget>,
cell_area: &Rectangle,
x: i32,
y: i32
) -> (CellRenderer, Rectangle)
fn cell_at_position( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, cell_area: &Rectangle, x: i32, y: i32 ) -> (CellRenderer, Rectangle)
CellRenderer
at @x and @y coordinates inside @self and optionally
returns the full cell allocation for it inside @cell_area. Read moresource§fn current_path_string(&self) -> GString
fn current_path_string(&self) -> GString
source§fn edit_widget(&self) -> Option<CellEditable>
fn edit_widget(&self) -> Option<CellEditable>
CellEditable
widget currently used
to edit the currently edited cell. Read moresource§fn edited_cell(&self) -> Option<CellRenderer>
fn edited_cell(&self) -> Option<CellRenderer>
CellRenderer
in @self that is currently
being edited. Read moresource§fn focus_cell(&self) -> Option<CellRenderer>
fn focus_cell(&self) -> Option<CellRenderer>
source§fn focus_from_sibling(
&self,
renderer: &impl IsA<CellRenderer>
) -> Option<CellRenderer>
fn focus_from_sibling( &self, renderer: &impl IsA<CellRenderer> ) -> Option<CellRenderer>
CellRenderer
which is expected to be focusable
for which @renderer is, or may be a sibling. Read moresource§fn focus_siblings(&self, renderer: &impl IsA<CellRenderer>) -> Vec<CellRenderer>
fn focus_siblings(&self, renderer: &impl IsA<CellRenderer>) -> Vec<CellRenderer>
source§fn preferred_height(
&self,
context: &impl IsA<CellAreaContext>,
widget: &impl IsA<Widget>
) -> (i32, i32)
fn preferred_height( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget> ) -> (i32, i32)
source§fn preferred_height_for_width(
&self,
context: &impl IsA<CellAreaContext>,
widget: &impl IsA<Widget>,
width: i32
) -> (i32, i32)
fn preferred_height_for_width( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, width: i32 ) -> (i32, i32)
source§fn preferred_width(
&self,
context: &impl IsA<CellAreaContext>,
widget: &impl IsA<Widget>
) -> (i32, i32)
fn preferred_width( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget> ) -> (i32, i32)
source§fn preferred_width_for_height(
&self,
context: &impl IsA<CellAreaContext>,
widget: &impl IsA<Widget>,
height: i32
) -> (i32, i32)
fn preferred_width_for_height( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, height: i32 ) -> (i32, i32)
source§fn request_mode(&self) -> SizeRequestMode
fn request_mode(&self) -> SizeRequestMode
source§fn has_renderer(&self, renderer: &impl IsA<CellRenderer>) -> bool
fn has_renderer(&self, renderer: &impl IsA<CellRenderer>) -> bool
source§fn inner_cell_area(
&self,
widget: &impl IsA<Widget>,
cell_area: &Rectangle
) -> Rectangle
fn inner_cell_area( &self, widget: &impl IsA<Widget>, cell_area: &Rectangle ) -> Rectangle
CellArea
implementations
to get the inner area where a given CellRenderer
will be
rendered. It removes any padding previously added by gtk_cell_area_request_renderer(). Read moresource§fn is_activatable(&self) -> bool
fn is_activatable(&self) -> bool
source§fn is_focus_sibling(
&self,
renderer: &impl IsA<CellRenderer>,
sibling: &impl IsA<CellRenderer>
) -> bool
fn is_focus_sibling( &self, renderer: &impl IsA<CellRenderer>, sibling: &impl IsA<CellRenderer> ) -> bool
source§fn remove(&self, renderer: &impl IsA<CellRenderer>)
fn remove(&self, renderer: &impl IsA<CellRenderer>)
source§fn remove_focus_sibling(
&self,
renderer: &impl IsA<CellRenderer>,
sibling: &impl IsA<CellRenderer>
)
fn remove_focus_sibling( &self, renderer: &impl IsA<CellRenderer>, sibling: &impl IsA<CellRenderer> )
source§fn request_renderer(
&self,
renderer: &impl IsA<CellRenderer>,
orientation: Orientation,
widget: &impl IsA<Widget>,
for_size: i32
) -> (i32, i32)
fn request_renderer( &self, renderer: &impl IsA<CellRenderer>, orientation: Orientation, widget: &impl IsA<Widget>, for_size: i32 ) -> (i32, i32)
CellArea
implementations
to request size for cell renderers. It’s important to use this
function to request size and then use gtk_cell_area_inner_cell_area()
at render and event time since this function will add padding
around the cell for focus painting. Read moresource§fn set_focus_cell(&self, renderer: Option<&impl IsA<CellRenderer>>)
fn set_focus_cell(&self, renderer: Option<&impl IsA<CellRenderer>>)
source§fn snapshot(
&self,
context: &impl IsA<CellAreaContext>,
widget: &impl IsA<Widget>,
snapshot: &impl IsA<Snapshot>,
background_area: &Rectangle,
cell_area: &Rectangle,
flags: CellRendererState,
paint_focus: bool
)
fn snapshot( &self, context: &impl IsA<CellAreaContext>, widget: &impl IsA<Widget>, snapshot: &impl IsA<Snapshot>, background_area: &Rectangle, cell_area: &Rectangle, flags: CellRendererState, paint_focus: bool )
source§fn stop_editing(&self, canceled: bool)
fn stop_editing(&self, canceled: bool)
source§fn connect_add_editable<F: Fn(&Self, &CellRenderer, &CellEditable, &Rectangle, TreePath) + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_add_editable<F: Fn(&Self, &CellRenderer, &CellEditable, &Rectangle, TreePath) + 'static>( &self, f: F ) -> SignalHandlerId
source§fn connect_apply_attributes<F: Fn(&Self, &TreeModel, &TreeIter, bool, bool) + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_apply_attributes<F: Fn(&Self, &TreeModel, &TreeIter, bool, bool) + 'static>( &self, f: F ) -> SignalHandlerId
source§fn connect_focus_changed<F: Fn(&Self, &CellRenderer, TreePath) + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_focus_changed<F: Fn(&Self, &CellRenderer, TreePath) + 'static>( &self, f: F ) -> SignalHandlerId
source§fn connect_remove_editable<F: Fn(&Self, &CellRenderer, &CellEditable) + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_remove_editable<F: Fn(&Self, &CellRenderer, &CellEditable) + 'static>( &self, f: F ) -> SignalHandlerId
source§fn connect_edit_widget_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
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
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
fn connect_focus_cell_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
source§impl<O> CellAreaExtManual for O
impl<O> CellAreaExtManual for O
source§fn add_with_properties(
&self,
renderer: &impl IsA<CellRenderer>,
properties: &[(&str, &dyn ToValue)]
)
fn add_with_properties( &self, renderer: &impl IsA<CellRenderer>, properties: &[(&str, &dyn ToValue)] )
source§fn cell_get_value(
&self,
renderer: &impl IsA<CellRenderer>,
property_name: impl IntoGStr
) -> Value
fn cell_get_value( &self, renderer: &impl IsA<CellRenderer>, property_name: impl IntoGStr ) -> Value
source§fn cell_get<V: for<'b> FromValue<'b> + 'static>(
&self,
renderer: &impl IsA<CellRenderer>,
property_name: impl IntoGStr
) -> V
fn cell_get<V: for<'b> FromValue<'b> + 'static>( &self, renderer: &impl IsA<CellRenderer>, property_name: impl IntoGStr ) -> V
Self::cell_get_value
but panics if the value is of a
different type.source§impl<O> CellLayoutExt for Owhere
O: IsA<CellLayout>,
impl<O> CellLayoutExt for Owhere
O: IsA<CellLayout>,
source§fn add_attribute(
&self,
cell: &impl IsA<CellRenderer>,
attribute: &str,
column: i32
)
fn add_attribute( &self, cell: &impl IsA<CellRenderer>, attribute: &str, column: i32 )
source§fn clear(&self)
fn clear(&self)
source§fn clear_attributes(&self, cell: &impl IsA<CellRenderer>)
fn clear_attributes(&self, cell: &impl IsA<CellRenderer>)
source§fn cells(&self) -> Vec<CellRenderer>
fn cells(&self) -> Vec<CellRenderer>
source§fn pack_start(&self, cell: &impl IsA<CellRenderer>, expand: bool)
fn pack_start(&self, cell: &impl IsA<CellRenderer>, expand: bool)
source§fn reorder(&self, cell: &impl IsA<CellRenderer>, position: i32)
fn reorder(&self, cell: &impl IsA<CellRenderer>, position: i32)
source§fn set_cell_data_func<P: Fn(&CellLayout, &CellRenderer, &TreeModel, &TreeIter) + 'static>(
&self,
cell: &impl IsA<CellRenderer>,
func: P
)
fn set_cell_data_func<P: Fn(&CellLayout, &CellRenderer, &TreeModel, &TreeIter) + 'static>( &self, cell: &impl IsA<CellRenderer>, func: P )
CellLayout
DataFunc to use for @self. Read moresource§impl<O> CellLayoutExtManual for Owhere
O: IsA<CellLayout>,
impl<O> CellLayoutExtManual for Owhere
O: IsA<CellLayout>,
source§fn set_attributes(
&self,
cell: &impl IsA<CellRenderer>,
attributes: &[(&str, i32)]
)
fn set_attributes( &self, cell: &impl IsA<CellRenderer>, attributes: &[(&str, i32)] )
source§fn unset_cell_data_func(&self, cell: &impl IsA<CellRenderer>)
fn unset_cell_data_func(&self, cell: &impl IsA<CellRenderer>)
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
unsafe fn from_glib_none_as_vec(ptr: *const GList) -> Vec<T>
unsafe fn from_glib_container_as_vec(_: *const GList) -> Vec<T>
unsafe fn from_glib_full_as_vec(_: *const GList) -> Vec<T>
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
unsafe fn from_glib_none_as_vec(ptr: *const GPtrArray) -> Vec<T>
unsafe fn from_glib_container_as_vec(_: *const GPtrArray) -> Vec<T>
unsafe fn from_glib_full_as_vec(_: *const GPtrArray) -> Vec<T>
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
unsafe fn from_glib_none_as_vec(ptr: *const GSList) -> Vec<T>
unsafe fn from_glib_container_as_vec(_: *const GSList) -> Vec<T>
unsafe fn from_glib_full_as_vec(_: *const GSList) -> Vec<T>
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
unsafe fn from_glib_none_as_vec(ptr: *mut GList) -> Vec<T>
unsafe fn from_glib_container_as_vec(ptr: *mut GList) -> Vec<T>
unsafe fn from_glib_full_as_vec(ptr: *mut GList) -> Vec<T>
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
unsafe fn from_glib_none_as_vec(ptr: *mut GPtrArray) -> Vec<T>
unsafe fn from_glib_container_as_vec(ptr: *mut GPtrArray) -> Vec<T>
unsafe fn from_glib_full_as_vec(ptr: *mut GPtrArray) -> Vec<T>
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
unsafe fn from_glib_none_as_vec(ptr: *mut GSList) -> Vec<T>
unsafe fn from_glib_container_as_vec(ptr: *mut GSList) -> Vec<T>
unsafe fn from_glib_full_as_vec(ptr: *mut GSList) -> Vec<T>
source§impl<O> GObjectPropertyExpressionExt for O
impl<O> GObjectPropertyExpressionExt for O
source§fn property_expression(&self, property_name: &str) -> PropertyExpression
fn property_expression(&self, property_name: &str) -> PropertyExpression
source§fn property_expression_weak(&self, property_name: &str) -> PropertyExpression
fn property_expression_weak(&self, property_name: &str) -> PropertyExpression
source§fn this_expression(property_name: &str) -> PropertyExpression
fn this_expression(property_name: &str) -> PropertyExpression
this
object.source§impl<T> IntoClosureReturnValue for T
impl<T> IntoClosureReturnValue for T
fn into_closure_return_value(self) -> Option<Value>
source§impl<U> IsSubclassableExt for Uwhere
U: IsClass + ParentClassIs,
impl<U> IsSubclassableExt for Uwhere
U: IsClass + ParentClassIs,
fn parent_class_init<T>(class: &mut Class<U>)
fn parent_instance_init<T>(instance: &mut InitializingObject<T>)
source§impl<T> ObjectExt for Twhere
T: ObjectType,
impl<T> ObjectExt for Twhere
T: ObjectType,
source§fn is<U>(&self) -> boolwhere
U: StaticType,
fn is<U>(&self) -> boolwhere
U: StaticType,
true
if the object is an instance of (can be cast to) T
.source§fn object_class(&self) -> &Class<Object>
fn object_class(&self) -> &Class<Object>
ObjectClass
of the object. Read moresource§fn class_of<U>(&self) -> Option<&Class<U>>where
U: IsClass,
fn class_of<U>(&self) -> Option<&Class<U>>where
U: IsClass,
T
. Read moresource§fn interface<U>(&self) -> Option<InterfaceRef<'_, U>>where
U: IsInterface,
fn interface<U>(&self) -> Option<InterfaceRef<'_, U>>where
U: IsInterface,
T
of the object. Read moresource§fn set_property_from_value(&self, property_name: &str, value: &Value)
fn set_property_from_value(&self, property_name: &str, value: &Value)
source§fn set_properties(&self, property_values: &[(&str, &dyn ToValue)])
fn set_properties(&self, property_values: &[(&str, &dyn ToValue)])
source§fn set_properties_from_value(&self, property_values: &[(&str, Value)])
fn set_properties_from_value(&self, property_values: &[(&str, Value)])
source§fn property<V>(&self, property_name: &str) -> Vwhere
V: for<'b> FromValue<'b> + 'static,
fn property<V>(&self, property_name: &str) -> Vwhere
V: for<'b> FromValue<'b> + 'static,
property_name
of the object and cast it to the type V. Read moresource§fn property_value(&self, property_name: &str) -> Value
fn property_value(&self, property_name: &str) -> Value
property_name
of the object. Read moresource§fn property_type(&self, property_name: &str) -> Option<Type>
fn property_type(&self, property_name: &str) -> Option<Type>
property_name
of this object. Read moresource§fn find_property(&self, property_name: &str) -> Option<ParamSpec>
fn find_property(&self, property_name: &str) -> Option<ParamSpec>
ParamSpec
of the property property_name
of this object.source§fn list_properties(&self) -> PtrSlice<ParamSpec>
fn list_properties(&self) -> PtrSlice<ParamSpec>
ParamSpec
of the properties of this object.source§fn freeze_notify(&self) -> PropertyNotificationFreezeGuard
fn freeze_notify(&self) -> PropertyNotificationFreezeGuard
source§unsafe fn set_qdata<QD>(&self, key: Quark, value: QD)where
QD: 'static,
unsafe fn set_qdata<QD>(&self, key: Quark, value: QD)where
QD: 'static,
key
. Read moresource§unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>where
QD: 'static,
unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>where
QD: 'static,
key
. Read moresource§unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>where
QD: 'static,
unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>where
QD: 'static,
key
. Read moresource§unsafe fn set_data<QD>(&self, key: &str, value: QD)where
QD: 'static,
unsafe fn set_data<QD>(&self, key: &str, value: QD)where
QD: 'static,
key
. Read moresource§unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>where
QD: 'static,
unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>where
QD: 'static,
key
. Read moresource§unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>where
QD: 'static,
unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>where
QD: 'static,
key
. Read moresource§fn block_signal(&self, handler_id: &SignalHandlerId)
fn block_signal(&self, handler_id: &SignalHandlerId)
source§fn unblock_signal(&self, handler_id: &SignalHandlerId)
fn unblock_signal(&self, handler_id: &SignalHandlerId)
source§fn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)
fn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)
source§fn stop_signal_emission_by_name(&self, signal_name: &str)
fn stop_signal_emission_by_name(&self, signal_name: &str)
source§fn connect<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerId
fn connect<F>( &self, signal_name: &str, after: bool, callback: F ) -> SignalHandlerId
signal_name
on this object. Read moresource§fn connect_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerId
fn connect_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F ) -> SignalHandlerId
signal_id
on this object. Read moresource§fn connect_local<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerId
fn connect_local<F>( &self, signal_name: &str, after: bool, callback: F ) -> SignalHandlerId
signal_name
on this object. Read moresource§fn connect_local_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerId
fn connect_local_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F ) -> SignalHandlerId
signal_id
on this object. Read moresource§unsafe fn connect_unsafe<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerId
unsafe fn connect_unsafe<F>( &self, signal_name: &str, after: bool, callback: F ) -> SignalHandlerId
signal_name
on this object. Read moresource§unsafe fn connect_unsafe_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerId
unsafe fn connect_unsafe_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F ) -> SignalHandlerId
signal_id
on this object. Read moresource§fn connect_closure(
&self,
signal_name: &str,
after: bool,
closure: RustClosure
) -> SignalHandlerId
fn connect_closure( &self, signal_name: &str, after: bool, closure: RustClosure ) -> SignalHandlerId
signal_name
on this object. Read moresource§fn connect_closure_id(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
closure: RustClosure
) -> SignalHandlerId
fn connect_closure_id( &self, signal_id: SignalId, details: Option<Quark>, after: bool, closure: RustClosure ) -> SignalHandlerId
signal_id
on this object. Read moresource§fn watch_closure(&self, closure: &impl AsRef<Closure>)
fn watch_closure(&self, closure: &impl AsRef<Closure>)
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]) -> Rwhere
R: TryFromClosureReturnValue,
fn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> Rwhere
R: TryFromClosureReturnValue,
source§fn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>
fn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>
Self::emit
but takes Value
for the arguments.source§fn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> Rwhere
R: TryFromClosureReturnValue,
source§fn emit_by_name_with_values(
&self,
signal_name: &str,
args: &[Value]
) -> Option<Value>
fn emit_by_name_with_values( &self, signal_name: &str, args: &[Value] ) -> Option<Value>
source§fn emit_by_name_with_details<R>(
&self,
signal_name: &str,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_by_name_with_details<R>(
&self,
signal_name: &str,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
source§fn emit_by_name_with_details_and_values(
&self,
signal_name: &str,
details: Quark,
args: &[Value]
) -> Option<Value>
fn emit_by_name_with_details_and_values( &self, signal_name: &str, details: Quark, args: &[Value] ) -> Option<Value>
source§fn emit_with_details<R>(
&self,
signal_id: SignalId,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_with_details<R>(
&self,
signal_id: SignalId,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
source§fn emit_with_details_and_values(
&self,
signal_id: SignalId,
details: Quark,
args: &[Value]
) -> Option<Value>
fn emit_with_details_and_values( &self, signal_id: SignalId, details: Quark, args: &[Value] ) -> Option<Value>
source§fn disconnect(&self, handler_id: SignalHandlerId)
fn disconnect(&self, handler_id: SignalHandlerId)
source§fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId
fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId
notify
signal of the object. Read moresource§fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId
fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId
notify
signal of the object. Read moresource§unsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId
unsafe fn connect_notify_unsafe<F>( &self, name: Option<&str>, f: F ) -> SignalHandlerId
notify
signal of the object. Read more