pub struct ListStore { /* private fields */ }
Expand description
Use Gio::ListStore
instead
A list-like data structure that can be used with the TreeView
.
The ListStore
object is a list model for use with a TreeView
widget. It implements the TreeModel
interface, and consequentialy,
can use all of the methods available there. It also implements the
TreeSortable
interface so it can be sorted by the view.
Finally, it also implements the tree
drag and drop
interfaces.
The ListStore
can accept most GType
s as a column type, though
it can’t accept all custom types. Internally, it will keep a copy of
data passed in (such as a string or a boxed pointer). Columns that
accept GObject
s are handled a little differently. The
ListStore
will keep a reference to the object instead of copying the
value. As a result, if the object is modified, it is up to the
application writer to call TreeModelExt::row_changed()
to emit the
row_changed
signal. This most commonly affects lists
with gdk::Texture
s stored.
An example for creating a simple list store:
⚠️ The following code is in c ⚠️
enum {
COLUMN_STRING,
COLUMN_INT,
COLUMN_BOOLEAN,
N_COLUMNS
};
{
GtkListStore *list_store;
GtkTreePath *path;
GtkTreeIter iter;
int i;
list_store = gtk_list_store_new (N_COLUMNS,
G_TYPE_STRING,
G_TYPE_INT,
G_TYPE_BOOLEAN);
for (i = 0; i < 10; i++)
{
char *some_data;
some_data = get_some_data (i);
// Add a new row to the model
gtk_list_store_append (list_store, &iter);
gtk_list_store_set (list_store, &iter,
COLUMN_STRING, some_data,
COLUMN_INT, i,
COLUMN_BOOLEAN, FALSE,
-1);
// As the store will keep a copy of the string internally,
// we free some_data.
g_free (some_data);
}
// Modify a particular row
path = gtk_tree_path_new_from_string ("4");
gtk_tree_model_get_iter (GTK_TREE_MODEL (list_store),
&iter,
path);
gtk_tree_path_free (path);
gtk_list_store_set (list_store, &iter,
COLUMN_BOOLEAN, TRUE,
-1);
}
ListStore
is deprecated since GTK 4.10, and should not be used in newly
written code. You should use Gio::ListStore
instead, and the various
list models provided by GTK.
§Performance Considerations
Internally, the ListStore
was originally implemented with a linked list
with a tail pointer. As a result, it was fast at data insertion and deletion,
and not fast at random data access. The ListStore
sets the
GTK_TREE_MODEL_ITERS_PERSIST
flag, which means that TreeIter
s can be
cached while the row exists. Thus, if access to a particular row is needed
often and your code is expected to run on older versions of GTK, it is worth
keeping the iter around.
§Atomic Operations
It is important to note that only the methods
gtk_list_store_insert_with_values() and gtk_list_store_insert_with_valuesv()
are atomic, in the sense that the row is being appended to the store and the
values filled in in a single operation with regard to TreeModel
signaling.
In contrast, using e.g. gtk_list_store_append() and then gtk_list_store_set()
will first create a row, which triggers the GtkTreeModel::row-inserted
signal
on ListStore
. The row, however, is still empty, and any signal handler
connecting to GtkTreeModel::row-inserted
on this particular store should be prepared
for the situation that the row might be empty. This is especially important
if you are wrapping the ListStore
inside a TreeModel
Filter and are
using a TreeModel
FilterVisibleFunc. Using any of the non-atomic operations
to append rows to the ListStore
will cause the
TreeModel
FilterVisibleFunc to be visited with an empty row first; the
function must be prepared for that.
§GtkListStore as GtkBuildable
The GtkListStore implementation of the Buildable
interface allows
to specify the model columns with a <columns>
element that may contain
multiple <column>
elements, each specifying one model column. The “type”
attribute specifies the data type for the column.
Additionally, it is possible to specify content for the list store
in the UI definition, with the <data>
element. It can contain multiple
<row>
elements, each specifying to content for one row of the list model.
Inside a <row>
, the <col>
elements specify the content for individual cells.
Note that it is probably more common to define your models in the code, and one might consider it a layering violation to specify the content of a list store in a UI definition, data, not presentation, and common wisdom is to separate the two, as far as possible.
An example of a UI Definition fragment for a list store:
<object class="GtkListStore">
<columns>
<column type="gchararray"/>
<column type="gchararray"/>
<column type="gint"/>
</columns>
<data>
<row>
<col id="0">John</col>
<col id="1">Doe</col>
<col id="2">25</col>
</row>
<row>
<col id="0">Johan</col>
<col id="1">Dahlin</col>
<col id="2">50</col>
</row>
</data>
</object>
§Implements
[trait@glib::ObjectExt
], BuildableExt
, TreeDragDestExt
, TreeDragSourceExt
, TreeModelExt
, TreeSortableExt
, TreeModelExtManual
, TreeSortableExtManual
Implementations§
source§impl ListStore
impl ListStore
sourcepub fn append(&self) -> TreeIter
👎Deprecated: Since 4.10
pub fn append(&self) -> TreeIter
Appends a new row to @self. @iter will be changed to point to this new row. The row will be empty after this function is called. To fill in values, you need to call gtk_list_store_set() or gtk_list_store_set_value().
§Deprecated since 4.10
Use list models
§Returns
§iter
An unset TreeIter
to set to the appended row
sourcepub fn insert(&self, position: i32) -> TreeIter
👎Deprecated: Since 4.10
pub fn insert(&self, position: i32) -> TreeIter
Creates a new row at @position. @iter will be changed to point to this new row. If @position is -1 or is larger than the number of rows on the list, then the new row will be appended to the list. The row will be empty after this function is called. To fill in values, you need to call gtk_list_store_set() or gtk_list_store_set_value().
§Deprecated since 4.10
Use list models
§position
position to insert the new row, or -1 for last
§Returns
§iter
An unset TreeIter
to set to the new row
sourcepub fn insert_after(&self, sibling: Option<&TreeIter>) -> TreeIter
👎Deprecated: Since 4.10
pub fn insert_after(&self, sibling: Option<&TreeIter>) -> TreeIter
Inserts a new row after @sibling. If @sibling is None
, then the row will be
prepended to the beginning of the list. @iter will be changed to point to
this new row. The row will be empty after this function is called. To fill
in values, you need to call gtk_list_store_set() or gtk_list_store_set_value().
§Deprecated since 4.10
Use list models
§sibling
A valid TreeIter
§Returns
§iter
An unset TreeIter
to set to the new row
sourcepub fn insert_before(&self, sibling: Option<&TreeIter>) -> TreeIter
👎Deprecated: Since 4.10
pub fn insert_before(&self, sibling: Option<&TreeIter>) -> TreeIter
Inserts a new row before @sibling. If @sibling is None
, then the row will
be appended to the end of the list. @iter will be changed to point to this
new row. The row will be empty after this function is called. To fill in
values, you need to call gtk_list_store_set() or gtk_list_store_set_value().
§Deprecated since 4.10
Use list models
§sibling
A valid TreeIter
§Returns
§iter
An unset TreeIter
to set to the new row
sourcepub fn iter_is_valid(&self, iter: &TreeIter) -> bool
👎Deprecated: Since 4.10
pub fn iter_is_valid(&self, iter: &TreeIter) -> bool
sourcepub fn move_after(&self, iter: &TreeIter, position: Option<&TreeIter>)
👎Deprecated: Since 4.10
pub fn move_after(&self, iter: &TreeIter, position: Option<&TreeIter>)
sourcepub fn move_before(&self, iter: &TreeIter, position: Option<&TreeIter>)
👎Deprecated: Since 4.10
pub fn move_before(&self, iter: &TreeIter, position: Option<&TreeIter>)
sourcepub fn prepend(&self) -> TreeIter
👎Deprecated: Since 4.10
pub fn prepend(&self) -> TreeIter
Prepends a new row to @self. @iter will be changed to point to this new row. The row will be empty after this function is called. To fill in values, you need to call gtk_list_store_set() or gtk_list_store_set_value().
§Deprecated since 4.10
Use list models
§Returns
§iter
An unset TreeIter
to set to the prepend row
source§impl ListStore
impl ListStore
sourcepub fn new(column_types: &[Type]) -> Self
👎Deprecated: Since 4.10
pub fn new(column_types: &[Type]) -> Self
Creates a new list store.
The list store will have @n_columns columns, with each column using the given type passed to this function.
Note that only types derived from standard GObject fundamental types are supported.
As an example:
⚠️ The following code is in c ⚠️
gtk_list_store_new (3, G_TYPE_INT, G_TYPE_STRING, GDK_TYPE_TEXTURE);
will create a new ListStore
with three columns, of type int
,
gchararray
and gdk::Texture
, respectively.
§Deprecated since 4.10
Use Gio::ListStore
instead
§Returns
a new ListStore
sourcepub fn insert_with_values(
&self,
position: Option<u32>,
columns_and_values: &[(u32, &dyn ToValue)]
) -> TreeIter
👎Deprecated: Since 4.10
pub fn insert_with_values( &self, position: Option<u32>, columns_and_values: &[(u32, &dyn ToValue)] ) -> TreeIter
A variant of gtk_list_store_insert_with_values() which takes the columns and values as two arrays, instead of varargs.
This function is mainly intended for language-bindings.
§Deprecated since 4.10
Use list models
§position
position to insert the new row, or -1 for last
§columns
an array of column numbers
§values
an array of GValues
§Returns
§iter
An unset TreeIter
to set to the new row
sourcepub fn reorder(&self, new_order: &[u32])
👎Deprecated: Since 4.10
pub fn reorder(&self, new_order: &[u32])
Reorders @self to follow the order indicated by @new_order. Note that this function only works with unsorted stores.
§Deprecated since 4.10
Use list models
§new_order
an array of integers mapping the new
position of each child to its old position before the re-ordering,
i.e. @new_order[newpos] = oldpos
. It must have
exactly as many items as the list store’s length.
sourcepub fn set(&self, iter: &TreeIter, columns_and_values: &[(u32, &dyn ToValue)])
👎Deprecated: Since 4.10
pub fn set(&self, iter: &TreeIter, columns_and_values: &[(u32, &dyn ToValue)])
Sets the value of one or more cells in the row referenced by @iter.
The variable argument list should contain integer column numbers,
each column number followed by the value to be set.
The list is terminated by a -1. For example, to set column 0 with type
G_TYPE_STRING
to “Foo”, you would write gtk_list_store_set (store, iter, 0, "Foo", -1)
.
The value will be referenced by the store if it is a G_TYPE_OBJECT
, and it
will be copied if it is a G_TYPE_STRING
or G_TYPE_BOXED
.
§Deprecated since 4.10
Use list models
§iter
row iterator
sourcepub fn set_column_types(&self, types: &[Type])
👎Deprecated: Since 4.10
pub fn set_column_types(&self, types: &[Type])
Sets the types of the columns of a list store.
This function is meant primarily for objects that inherit
from ListStore
, and should only be used when constructing
a new instance.
This function cannot be called after a row has been added, or
a method on the TreeModel
interface is called.
§Deprecated since 4.10
Use list models
§types
An array length n of GType
s
Trait Implementations§
source§impl HasParamSpec for ListStore
impl HasParamSpec for ListStore
source§impl Ord for ListStore
impl Ord for ListStore
source§impl<OT: ObjectType> PartialEq<OT> for ListStore
impl<OT: ObjectType> PartialEq<OT> for ListStore
source§impl<OT: ObjectType> PartialOrd<OT> for ListStore
impl<OT: ObjectType> PartialOrd<OT> for ListStore
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 ListStore
impl StaticType for ListStore
source§fn static_type() -> Type
fn static_type() -> Type
Self
.impl Eq for ListStore
impl IsA<Buildable> for ListStore
impl IsA<TreeDragDest> for ListStore
impl IsA<TreeDragSource> for ListStore
impl IsA<TreeModel> for ListStore
impl IsA<TreeSortable> for ListStore
Auto Trait Implementations§
impl Freeze for ListStore
impl RefUnwindSafe for ListStore
impl !Send for ListStore
impl !Sync for ListStore
impl Unpin for ListStore
impl UnwindSafe for ListStore
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<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 moresource§fn notify(&self, property_name: &str)
fn notify(&self, property_name: &str)
source§fn notify_by_pspec(&self, pspec: &ParamSpec)
fn notify_by_pspec(&self, pspec: &ParamSpec)
source§fn add_weak_ref_notify<F>(&self, f: F) -> WeakRefNotify<T>
fn add_weak_ref_notify<F>(&self, f: F) -> WeakRefNotify<T>
source§fn add_weak_ref_notify_local<F>(&self, f: F) -> WeakRefNotify<T>where
F: FnOnce() + 'static,
fn add_weak_ref_notify_local<F>(&self, f: F) -> WeakRefNotify<T>where
F: FnOnce() + 'static,
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,
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,
source§unsafe fn run_dispose(&self)
unsafe fn run_dispose(&self)
source§impl<T> PropertyGet for Twhere
T: HasParamSpec,
impl<T> PropertyGet for Twhere
T: HasParamSpec,
source§impl<T> StaticTypeExt for Twhere
T: StaticType,
impl<T> StaticTypeExt for Twhere
T: StaticType,
source§fn ensure_type()
fn ensure_type()
source§impl<T> TransparentType for Twhere
T: TransparentPtrType,
impl<T> TransparentType for Twhere
T: TransparentPtrType,
type GlibType = <T as GlibPtrDefault>::GlibType
source§impl<O> TreeDragDestExt for Owhere
O: IsA<TreeDragDest>,
impl<O> TreeDragDestExt for Owhere
O: IsA<TreeDragDest>,
source§fn drag_data_received(&self, dest: &TreePath, value: &Value) -> bool
fn drag_data_received(&self, dest: &TreePath, value: &Value) -> bool
TreeDragDest
to insert a row before the path @dest,
deriving the contents of the row from @value. If @dest is
outside the tree so that inserting before it is impossible, false
will be returned. Also, false
may be returned if the new row is
not created for some model-specific reason. Should robustly handle
a @dest no longer found in the model! Read moresource§impl<O> TreeDragSourceExt for Owhere
O: IsA<TreeDragSource>,
impl<O> TreeDragSourceExt for Owhere
O: IsA<TreeDragSource>,
source§fn drag_data_delete(&self, path: &TreePath) -> bool
fn drag_data_delete(&self, path: &TreePath) -> bool
TreeDragSource
to delete the row at @path, because
it was moved somewhere else via drag-and-drop. Returns false
if the deletion fails because @path no longer exists, or for
some model-specific reason. Should robustly handle a @path no
longer found in the model! Read moresource§fn drag_data_get(&self, path: &TreePath) -> Option<ContentProvider>
fn drag_data_get(&self, path: &TreePath) -> Option<ContentProvider>
TreeDragSource
to return a gdk::ContentProvider
representing
the row at @path. Should robustly handle a @path no
longer found in the model! Read moresource§fn row_draggable(&self, path: &TreePath) -> bool
fn row_draggable(&self, path: &TreePath) -> bool
TreeDragSource
whether a particular row can be used as
the source of a DND operation. If the source doesn’t implement
this interface, the row is assumed draggable. Read moresource§impl<O> TreeModelExt for O
impl<O> TreeModelExt for O
source§fn foreach<P: FnMut(&TreeModel, &TreePath, &TreeIter) -> bool>(&self, func: P)
fn foreach<P: FnMut(&TreeModel, &TreePath, &TreeIter) -> bool>(&self, func: P)
source§fn column_type(&self, index_: i32) -> Type
fn column_type(&self, index_: i32) -> Type
source§fn flags(&self) -> TreeModelFlags
fn flags(&self) -> TreeModelFlags
source§fn iter(&self, path: &TreePath) -> Option<TreeIter>
fn iter(&self, path: &TreePath) -> Option<TreeIter>
source§fn iter_first(&self) -> Option<TreeIter>
fn iter_first(&self) -> Option<TreeIter>
source§fn iter_from_string(&self, path_string: &str) -> Option<TreeIter>
fn iter_from_string(&self, path_string: &str) -> Option<TreeIter>
source§fn n_columns(&self) -> i32
fn n_columns(&self) -> i32
source§fn string_from_iter(&self, iter: &TreeIter) -> Option<GString>
fn string_from_iter(&self, iter: &TreeIter) -> Option<GString>
source§fn iter_children(&self, parent: Option<&TreeIter>) -> Option<TreeIter>
fn iter_children(&self, parent: Option<&TreeIter>) -> Option<TreeIter>
source§fn iter_has_child(&self, iter: &TreeIter) -> bool
fn iter_has_child(&self, iter: &TreeIter) -> bool
source§fn iter_n_children(&self, iter: Option<&TreeIter>) -> i32
fn iter_n_children(&self, iter: Option<&TreeIter>) -> i32
source§fn iter_next(&self, iter: &TreeIter) -> bool
fn iter_next(&self, iter: &TreeIter) -> bool
source§fn iter_nth_child(&self, parent: Option<&TreeIter>, n: i32) -> Option<TreeIter>
fn iter_nth_child(&self, parent: Option<&TreeIter>, n: i32) -> Option<TreeIter>
source§fn iter_parent(&self, child: &TreeIter) -> Option<TreeIter>
fn iter_parent(&self, child: &TreeIter) -> Option<TreeIter>
source§fn iter_previous(&self, iter: &TreeIter) -> bool
fn iter_previous(&self, iter: &TreeIter) -> bool
source§fn row_changed(&self, path: &TreePath, iter: &TreeIter)
fn row_changed(&self, path: &TreePath, iter: &TreeIter)
source§fn row_deleted(&self, path: &TreePath)
fn row_deleted(&self, path: &TreePath)
source§fn row_has_child_toggled(&self, path: &TreePath, iter: &TreeIter)
fn row_has_child_toggled(&self, path: &TreePath, iter: &TreeIter)
source§fn row_inserted(&self, path: &TreePath, iter: &TreeIter)
fn row_inserted(&self, path: &TreePath, iter: &TreeIter)
source§fn connect_row_changed<F: Fn(&Self, &TreePath, &TreeIter) + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_row_changed<F: Fn(&Self, &TreePath, &TreeIter) + 'static>( &self, f: F ) -> SignalHandlerId
source§fn connect_row_deleted<F: Fn(&Self, &TreePath) + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_row_deleted<F: Fn(&Self, &TreePath) + 'static>( &self, f: F ) -> SignalHandlerId
source§fn connect_row_has_child_toggled<F: Fn(&Self, &TreePath, &TreeIter) + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_row_has_child_toggled<F: Fn(&Self, &TreePath, &TreeIter) + 'static>( &self, f: F ) -> SignalHandlerId
source§fn connect_row_inserted<F: Fn(&Self, &TreePath, &TreeIter) + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_row_inserted<F: Fn(&Self, &TreePath, &TreeIter) + 'static>( &self, f: F ) -> SignalHandlerId
source§impl<O> TreeModelExtManual for O
impl<O> TreeModelExtManual for O
source§impl<O> TreeSortableExt for Owhere
O: IsA<TreeSortable>,
impl<O> TreeSortableExt for Owhere
O: IsA<TreeSortable>,
source§fn has_default_sort_func(&self) -> bool
fn has_default_sort_func(&self) -> bool
source§fn sort_column_changed(&self)
fn sort_column_changed(&self)
GtkTreeSortable::sort-column-changed
signal on @self. Read moresource§fn connect_sort_column_changed<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
fn connect_sort_column_changed<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
source§impl<O> TreeSortableExtManual for Owhere
O: IsA<TreeSortable>,
impl<O> TreeSortableExtManual for Owhere
O: IsA<TreeSortable>,
source§fn set_default_sort_func<F>(&self, sort_func: F)
fn set_default_sort_func<F>(&self, sort_func: F)
GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID
, then the model will sort using
this function. Read moresource§fn set_sort_func<F>(&self, sort_column_id: SortColumn, sort_func: F)
fn set_sort_func<F>(&self, sort_column_id: SortColumn, sort_func: F)
source§fn sort_column_id(&self) -> Option<(SortColumn, SortType)>
fn sort_column_id(&self) -> Option<(SortColumn, SortType)>
source§fn set_sort_column_id(&self, sort_column_id: SortColumn, order: SortType)
fn set_sort_column_id(&self, sort_column_id: SortColumn, order: SortType)
GtkTreeSortable::sort-column-changed
signal. @sort_column_id may either be
a regular column id, or one of the following special values: Read more