Creates a new GtkTreeViewColumn
.
The GtkCellArea
used to layout cell renderers for this column.
If no area is specified when creating the tree view column with gtk_tree_view_column_new_with_area()
a horizontally oriented GtkCellAreaBox
will be used.
Logical sort column ID this column sorts on when selected for sorting. Setting the sort column ID makes the column header clickable. Set to -1 to make the column unsortable.
Adds an attribute mapping to the list in tree_column
.
The column
is the
column of the model to get a value from, and the attribute
is the
parameter on cell_renderer
to be set from the value. So for example
if column 2 of the model contains strings, you could have the
“text” attribute of a GtkCellRendererText
get its values from
column 2.
the GtkCellRenderer
to set attributes on
An attribute on the renderer
The column position on the model to get the attribute from.
Creates a binding between source_property
on source
and target_property
on target
.
Whenever the source_property
is changed the target_property
is
updated using the same value. For instance:
g_object_bind_property (action, "active", widget, "sensitive", 0);
Will result in the "sensitive" property of the widget #GObject instance to be updated with the same value of the "active" property of the action #GObject instance.
If flags
contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
if target_property
on target
changes then the source_property
on source
will be updated as well.
The binding will automatically be removed when either the source
or the
target
instances are finalized. To remove the binding without affecting the
source
and the target
you can just call g_object_unref() on the returned
#GBinding instance.
Removing the binding by calling g_object_unref() on it must only be done if
the binding, source
and target
are only used from a single thread and it
is clear that both source
and target
outlive the binding. Especially it
is not safe to rely on this if the binding, source
or target
can be
finalized from different threads. Keep another reference to the binding and
use g_binding_unbind() instead to be on the safe side.
A #GObject can have multiple bindings.
the property on source
to bind
the target #GObject
the property on target
to bind
flags to pass to #GBinding
Creates a binding between source_property
on source
and target_property
on target,
allowing you to set the transformation functions to be used by
the binding.
This function is the language bindings friendly version of g_object_bind_property_full(), using #GClosures instead of function pointers.
the property on source
to bind
the target #GObject
the property on target
to bind
flags to pass to #GBinding
a #GClosure wrapping the transformation function from the source
to the target,
or %NULL to use the default
a #GClosure wrapping the transformation function from the target
to the source,
or %NULL to use the default
Obtains the horizontal position and size of a cell in a column.
If the cell is not found in the column, start_pos
and width
are not changed and %FALSE is returned.
a GtkCellRenderer
Obtains the width and height needed to render the column. This is used
primarily by the GtkTreeView
.
Returns %TRUE if any of the cells packed into the tree_column
are visible.
For this to be meaningful, you must first initialize the cells with
gtk_tree_view_column_cell_set_cell_data()
Sets the cell renderer based on the tree_model
and iter
. That is, for
every attribute mapping in tree_column,
it will get a value from the set
column on the iter,
and use that value to set the attribute on the cell
renderer. This is used primarily by the GtkTreeView
.
The GtkTreeModel
to get the cell renderers attributes from.
The GtkTreeIter
to get the cell renderer’s attributes from.
%TRUE, if the row has children
%TRUE, if the row has visible children
Unsets all the mappings on all renderers on the tree_column
.
Clears all existing attributes previously set with gtk_tree_view_column_set_attributes().
a GtkCellRenderer
to clear the attribute mapping on.
Emits the “clicked” signal on the column. This function will only work if
tree_column
is clickable.
Sets the current keyboard focus to be at cell,
if the column contains
2 or more editable and activatable cells.
A GtkCellRenderer
This function is intended for #GObject implementations to re-enforce a [floating][floating-ref] object reference. Doing this is seldom required: all #GInitiallyUnowneds are created with a floating reference which usually just needs to be sunken by calling g_object_ref_sink().
Increases the freeze count on object
. If the freeze count is
non-zero, the emission of "notify" signals on object
is
stopped. The signals are queued until the freeze count is decreased
to zero. Duplicate notifications are squashed so that at most one
#GObject::notify signal is emitted for each property modified while the
object is frozen.
This is necessary for accessors that modify multiple properties to prevent premature notification while the object is still being modified.
Returns the current x alignment of tree_column
. This value can range
between 0.0 and 1.0.
Gets the ID of the buildable
object.
GtkBuilder
sets the name based on the ID attribute
of the
Returns the cell renderers which have been added to cell_layout
.
Returns %TRUE if the user can click on the header for the column.
Gets a named field from the objects table of associations (see g_object_set_data()).
name of the key for that association
Returns %TRUE if the column expands to fill available space.
Gets the fixed width of the column. This may not be the actual displayed width of the column; for that, use gtk_tree_view_column_get_width().
Returns the maximum width in pixels of the tree_column,
or -1 if no maximum
width is set.
Returns the minimum width in pixels of the tree_column,
or -1 if no minimum
width is set.
Gets a property of an object.
The value
can be:
In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling g_value_unset().
Note that g_object_get_property() is really intended for language bindings, g_object_get() is much more convenient for C programming.
the name of the property to get
return location for the property value
This function gets back user data pointers stored via g_object_set_qdata().
A #GQuark, naming the user data pointer
Returns %TRUE if the tree_column
can be reordered by the user.
Returns %TRUE if the tree_column
can be resized by the end user.
Returns the current type of tree_column
.
Gets the logical sort_column_id
that the model sorts on
when this column is selected for sorting.
See [methodGtk
.TreeViewColumn.set_sort_column_id].
Gets the value set by gtk_tree_view_column_set_sort_indicator().
Returns the spacing of tree_column
.
Returns the title of the widget.
Returns %TRUE if tree_column
is visible.
Returns the current size of tree_column
in pixels.
Returns the current X offset of tree_column
in pixels.
Gets n_properties
properties for an object
.
Obtained properties will be set to values
. All properties must be valid.
Warnings will be emitted and undefined behaviour may result if invalid
properties are passed in.
the names of each property to get
the values of each property to get
Checks whether object
has a [floating][floating-ref] reference.
Emits a "notify" signal for the property property_name
on object
.
When possible, eg. when signaling a property change from within the class that registered the property, you should use g_object_notify_by_pspec() instead.
Note that emission of the notify signal may be blocked with g_object_freeze_notify(). In this case, the signal emissions are queued and will be emitted (in reverse order) when g_object_thaw_notify() is called.
the name of a property installed on the class of object
.
Emits a "notify" signal for the property specified by pspec
on object
.
This function omits the property name lookup, hence it is faster than g_object_notify().
One way to avoid using g_object_notify() from within the class that registered the properties, and using g_object_notify_by_pspec() instead, is to store the GParamSpec used with g_object_class_install_property() inside a static array, e.g.:
enum
{
PROP_0,
PROP_FOO,
PROP_LAST
};
static GParamSpec *properties[PROP_LAST];
static void
my_object_class_init (MyObjectClass *klass)
{
properties[PROP_FOO] = g_param_spec_int ("foo", "Foo", "The foo",
0, 100,
50,
G_PARAM_READWRITE);
g_object_class_install_property (gobject_class,
PROP_FOO,
properties[PROP_FOO]);
}
and then notify a change on the "foo" property with:
g_object_notify_by_pspec (self, properties[PROP_FOO]);
the #GParamSpec of a property installed on the class of object
.
Adds the cell
to end of the column. If expand
is %FALSE, then the cell
is allocated no more space than it needs. Any unused space is divided
evenly between cells for which expand
is %TRUE.
The GtkCellRenderer
%TRUE if cell
is to be given extra space allocated to tree_column
.
Adds the cell
to the end of cell_layout
. If expand
is %FALSE, then the
cell
is allocated no more space than it needs. Any unused space is
divided evenly between cells for which expand
is %TRUE.
Note that reusing the same cell renderer is not supported.
a GtkCellRenderer
%TRUE if cell
is to be given extra space allocated to cell_layout
Packs the cell
into the beginning of the column. If expand
is %FALSE, then
the cell
is allocated no more space than it needs. Any unused space is divided
evenly between cells for which expand
is %TRUE.
The GtkCellRenderer
%TRUE if cell
is to be given extra space allocated to tree_column
.
Packs the cell
into the beginning of cell_layout
. If expand
is %FALSE,
then the cell
is allocated no more space than it needs. Any unused space
is divided evenly between cells for which expand
is %TRUE.
Note that reusing the same cell renderer is not supported.
a GtkCellRenderer
%TRUE if cell
is to be given extra space allocated to cell_layout
Flags the column, and the cell renderers added to this column, to have their sizes renegotiated.
Increase the reference count of object,
and possibly remove the
[floating][floating-ref] reference, if object
has a floating reference.
In other words, if the object is floating, then this call "assumes ownership" of the floating reference, converting it to a normal reference by clearing the floating flag while leaving the reference count unchanged. If the object is not floating, then this call adds a new normal reference increasing the reference count by one.
Since GLib 2.56, the type of object
will be propagated to the return type
under the same conditions as for g_object_ref().
Re-inserts cell
at position
.
Note that cell
has already to be packed into cell_layout
for this to function properly.
a GtkCellRenderer
to reorder
new position to insert cell
at
Releases all references to other objects. This can be used to break reference cycles.
This function should only be called from object system implementations.
Sets the alignment of the title or custom widget inside the column header. The alignment determines its location inside the button -- 0.0 for left, 0.5 for center, 1.0 for right.
The alignment, which is between [0.0 and 1.0] inclusive.
Sets the GtkTreeCellDataFunc
to use for the column.
This
function is used instead of the standard attributes mapping for
setting the column value, and should set the value of tree_column'
s
cell renderer as appropriate. func
may be %NULL to remove an
older one.
A GtkCellRenderer
The GtkTreeCellDataFunc
to use.
Sets the GtkCellLayout
DataFunc to use for cell_layout
.
This function is used instead of the standard attributes mapping
for setting the column value, and should set the value of cell_layout’
s
cell renderer(s) as appropriate.
func
may be %NULL to remove a previously set function.
a GtkCellRenderer
the GtkCellLayout
DataFunc to use
Sets the header to be active if clickable
is %TRUE. When the header is
active, then it can take keyboard focus, and can be clicked.
%TRUE if the header is active.
Each object carries around a table of associations from strings to pointers. This function lets you set an association.
If the object already had an association with that name, the old association will be destroyed.
Internally, the key
is converted to a #GQuark using g_quark_from_string().
This means a copy of key
is kept permanently (even after object
has been
finalized) — so it is recommended to only use a small, bounded set of values
for key
in your program, to avoid the #GQuark storage growing unbounded.
name of the key
data to associate with that key
Sets the column to take available extra space. This space is shared equally amongst all columns that have the expand set to %TRUE. If no column has this option set, then the last column gets all extra space. By default, every column is created with this %FALSE.
Along with “fixed-width”, the “expand” property changes when the column is resized by the user.
%TRUE if the column should expand to fill available space.
If fixed_width
is not -1, sets the fixed width of tree_column;
otherwise
unsets it. The effective value of fixed_width
is clamped between the
minimum and maximum width of the column; however, the value stored in the
“fixed-width” property is not clamped. If the column sizing is
%GTK_TREE_VIEW_COLUMN_GROW_ONLY or %GTK_TREE_VIEW_COLUMN_AUTOSIZE, setting
a fixed width overrides the automatically calculated width. Note that
fixed_width
is only a hint to GTK; the width actually allocated to the
column may be greater or less than requested.
Along with “expand”, the “fixed-width” property changes when the column is resized by the user.
The new fixed width, in pixels, or -1.
Sets the maximum width of the tree_column
. If max_width
is -1, then the
maximum width is unset. Note, the column can actually be wider than max
width if it’s the last column in a view. In this case, the column expands to
fill any extra space.
The maximum width of the column in pixels, or -1.
Sets the minimum width of the tree_column
. If min_width
is -1, then the
minimum width is unset.
The minimum width of the column in pixels, or -1.
Sets a property on an object.
the name of the property to set
the value
If reorderable
is %TRUE, then the column can be reordered by the end user
dragging the header.
%TRUE, if the column can be reordered.
If resizable
is %TRUE, then the user can explicitly resize the column by
grabbing the outer edge of the column button.
If resizable is %TRUE and sizing mode of the column is %GTK_TREE_VIEW_COLUMN_AUTOSIZE, then the sizing mode is changed to %GTK_TREE_VIEW_COLUMN_GROW_ONLY.
%TRUE, if the column can be resized
Sets the growth behavior of tree_column
to type
.
The GtkTreeViewColumn
Sizing.
Sets the logical sort_column_id
that this column sorts on when this column
is selected for sorting. Doing so makes the column header clickable.
The sort_column_id
of the model to sort on.
Call this function with a setting
of %TRUE to display an arrow in
the header button indicating the column is sorted. Call
gtk_tree_view_column_set_sort_order() to change the direction of
the arrow.
%TRUE to display an indicator that the column is sorted
Changes the appearance of the sort indicator.
This does not actually sort the model. Use gtk_tree_view_column_set_sort_column_id() if you want automatic sorting support. This function is primarily for custom sorting behavior, and should be used in conjunction with gtk_tree_sortable_set_sort_column_id() to do that. For custom models, the mechanism will vary.
The sort indicator changes direction to indicate normal sort or reverse sort. Note that you must have the sort indicator enabled to see anything when calling this function; see gtk_tree_view_column_set_sort_indicator().
Sets the spacing field of tree_column,
which is the number of pixels to
place between cell renderers packed into it.
distance between cell renderers in pixels.
Sets the title of the tree_column
. If a custom widget has been set, then
this value is ignored.
The title of the tree_column
.
Sets the visibility of tree_column
.
%TRUE if the tree_column
is visible.
Remove a specified datum from the object's data associations, without invoking the association's destroy handler.
name of the key
This function gets back user data pointers stored via
g_object_set_qdata() and removes the data
from object
without invoking its destroy() function (if any was
set).
Usually, calling this function is only required to update
user data pointers with a destroy notifier, for example:
void
object_add_to_user_list (GObject *object,
const gchar *new_string)
{
// the quark, naming the object data
GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
// retrieve the old string list
GList *list = g_object_steal_qdata (object, quark_string_list);
// prepend new string
list = g_list_prepend (list, g_strdup (new_string));
// this changed 'list', so we need to set it again
g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
}
static void
free_string_list (gpointer data)
{
GList *node, *list = data;
for (node = list; node; node = node->next)
g_free (node->data);
g_list_free (list);
}
Using g_object_get_qdata() in the above example, instead of g_object_steal_qdata() would have left the destroy function set, and thus the partial string list would have been freed upon g_object_set_qdata_full().
A #GQuark, naming the user data pointer
Reverts the effect of a previous call to
g_object_freeze_notify(). The freeze count is decreased on object
and when it reaches zero, queued "notify" signals are emitted.
Duplicate notifications for each property are squashed so that at most one #GObject::notify signal is emitted for each property, in the reverse order in which they have been queued.
It is an error to call this function when the freeze count is zero.
Decreases the reference count of object
. When its reference count
drops to 0, the object is finalized (i.e. its memory is freed).
If the pointer to the #GObject may be reused in future (for example, if it is an instance variable of another object), it is recommended to clear the pointer to %NULL rather than retain a dangling pointer to a potentially invalid #GObject instance. Use g_clear_object() for this.
This function essentially limits the life time of the closure
to
the life time of the object. That is, when the object is finalized,
the closure
is invalidated by calling g_closure_invalidate() on
it, in order to prevent invocations of the closure with a finalized
(nonexisting) object. Also, g_object_ref() and g_object_unref() are
added as marshal guards to the closure,
to ensure that an extra
reference count is held on object
during invocation of the
closure
. Usually, this function will be called on closures that
use this object
as closure data.
#GClosure to watch
Find the #GParamSpec with the given name for an
interface. Generally, the interface vtable passed in as g_iface
will be the default vtable from g_type_default_interface_ref(), or,
if you know the interface has already been loaded,
g_type_default_interface_peek().
any interface vtable for the interface, or the default vtable for the interface
name of a property to look up.
Add a property to an interface; this is only useful for interfaces that are added to GObject-derived types. Adding a property to an interface forces all objects classes with that interface to have a compatible property. The compatible property could be a newly created #GParamSpec, but normally g_object_class_override_property() will be used so that the object class only needs to provide an implementation and inherits the property description, default value, bounds, and so forth from the interface property.
This function is meant to be called from the interface's default
vtable initialization function (the class_init
member of
#GTypeInfo.) It must not be called after after class_init
has
been called for any object types implementing this interface.
If pspec
is a floating reference, it will be consumed.
any interface vtable for the interface, or the default vtable for the interface.
the #GParamSpec for the new property
Lists the properties of an interface.Generally, the interface
vtable passed in as g_iface
will be the default vtable from
g_type_default_interface_ref(), or, if you know the interface has
already been loaded, g_type_default_interface_peek().
any interface vtable for the interface, or the default vtable for the interface
Creates a new GtkTreeViewColumn
.
Creates a new GtkTreeViewColumn
using area
to render its cells.
Creates a new instance of a #GObject subtype and sets its properties.
Construction parameters (see %G_PARAM_CONSTRUCT, %G_PARAM_CONSTRUCT_ONLY) which are not explicitly specified are set to their default values.
the type id of the #GObject subtype to instantiate
an array of #GParameter
A visible column in a [class
Gtk
.TreeView] widgetThe
GtkTreeViewColumn
object represents a visible column in aGtkTreeView
widget. It allows to set properties of the column header, and functions as a holding pen for the cell renderers which determine how the data in the column is displayed.Please refer to the tree widget conceptual overview for an overview of all the objects and data types related to the tree widget and how they work together, and to the [class
Gtk
.TreeView] documentation for specifics about the CSS node structure for treeviews and their headers.