mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2026-02-10 07:00:53 +00:00
sysprof: use child property instead of title for expander
This commit is contained in:
@ -27,7 +27,7 @@ struct _SysprofTreeExpander
|
|||||||
GtkWidget parent_instance;
|
GtkWidget parent_instance;
|
||||||
|
|
||||||
GtkWidget *image;
|
GtkWidget *image;
|
||||||
GtkWidget *title;
|
GtkWidget *child;
|
||||||
GtkWidget *suffix;
|
GtkWidget *suffix;
|
||||||
|
|
||||||
GMenuModel *menu_model;
|
GMenuModel *menu_model;
|
||||||
@ -44,6 +44,7 @@ struct _SysprofTreeExpander
|
|||||||
|
|
||||||
enum {
|
enum {
|
||||||
PROP_0,
|
PROP_0,
|
||||||
|
PROP_CHILD,
|
||||||
PROP_EXPANDED,
|
PROP_EXPANDED,
|
||||||
PROP_EXPANDED_ICON,
|
PROP_EXPANDED_ICON,
|
||||||
PROP_EXPANDED_ICON_NAME,
|
PROP_EXPANDED_ICON_NAME,
|
||||||
@ -53,7 +54,6 @@ enum {
|
|||||||
PROP_LIST_ROW,
|
PROP_LIST_ROW,
|
||||||
PROP_MENU_MODEL,
|
PROP_MENU_MODEL,
|
||||||
PROP_SUFFIX,
|
PROP_SUFFIX,
|
||||||
PROP_TITLE,
|
|
||||||
PROP_USE_MARKUP,
|
PROP_USE_MARKUP,
|
||||||
N_PROPS
|
N_PROPS
|
||||||
};
|
};
|
||||||
@ -212,7 +212,7 @@ sysprof_tree_expander_dispose (GObject *object)
|
|||||||
sysprof_tree_expander_set_list_row (self, NULL);
|
sysprof_tree_expander_set_list_row (self, NULL);
|
||||||
|
|
||||||
g_clear_pointer (&self->image, gtk_widget_unparent);
|
g_clear_pointer (&self->image, gtk_widget_unparent);
|
||||||
g_clear_pointer (&self->title, gtk_widget_unparent);
|
g_clear_pointer (&self->child, gtk_widget_unparent);
|
||||||
g_clear_pointer (&self->suffix, gtk_widget_unparent);
|
g_clear_pointer (&self->suffix, gtk_widget_unparent);
|
||||||
|
|
||||||
g_clear_object (&self->list_row);
|
g_clear_object (&self->list_row);
|
||||||
@ -272,8 +272,8 @@ sysprof_tree_expander_get_property (GObject *object,
|
|||||||
g_value_set_object (value, sysprof_tree_expander_get_suffix (self));
|
g_value_set_object (value, sysprof_tree_expander_get_suffix (self));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROP_TITLE:
|
case PROP_CHILD:
|
||||||
g_value_set_string (value, sysprof_tree_expander_get_title (self));
|
g_value_set_object (value, sysprof_tree_expander_get_child (self));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROP_USE_MARKUP:
|
case PROP_USE_MARKUP:
|
||||||
@ -323,8 +323,8 @@ sysprof_tree_expander_set_property (GObject *object,
|
|||||||
sysprof_tree_expander_set_suffix (self, g_value_get_object (value));
|
sysprof_tree_expander_set_suffix (self, g_value_get_object (value));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROP_TITLE:
|
case PROP_CHILD:
|
||||||
sysprof_tree_expander_set_title (self, g_value_get_string (value));
|
sysprof_tree_expander_set_child (self, g_value_get_object (value));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROP_USE_MARKUP:
|
case PROP_USE_MARKUP:
|
||||||
@ -395,9 +395,9 @@ sysprof_tree_expander_class_init (SysprofTreeExpanderClass *klass)
|
|||||||
GTK_TYPE_WIDGET,
|
GTK_TYPE_WIDGET,
|
||||||
(G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));
|
(G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));
|
||||||
|
|
||||||
properties [PROP_TITLE] =
|
properties [PROP_CHILD] =
|
||||||
g_param_spec_string ("title", NULL, NULL,
|
g_param_spec_object ("child", NULL, NULL,
|
||||||
NULL,
|
GTK_TYPE_WIDGET,
|
||||||
(G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));
|
(G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));
|
||||||
|
|
||||||
properties [PROP_USE_MARKUP] =
|
properties [PROP_USE_MARKUP] =
|
||||||
@ -422,15 +422,6 @@ sysprof_tree_expander_init (SysprofTreeExpander *self)
|
|||||||
self->image = g_object_new (GTK_TYPE_IMAGE, NULL);
|
self->image = g_object_new (GTK_TYPE_IMAGE, NULL);
|
||||||
gtk_widget_insert_after (self->image, GTK_WIDGET (self), NULL);
|
gtk_widget_insert_after (self->image, GTK_WIDGET (self), NULL);
|
||||||
|
|
||||||
self->title = g_object_new (GTK_TYPE_LABEL,
|
|
||||||
"halign", GTK_ALIGN_START,
|
|
||||||
"hexpand", TRUE,
|
|
||||||
"ellipsize", PANGO_ELLIPSIZE_END,
|
|
||||||
"margin-start", 3,
|
|
||||||
"margin-end", 3,
|
|
||||||
NULL);
|
|
||||||
gtk_widget_insert_after (self->title, GTK_WIDGET (self), self->image);
|
|
||||||
|
|
||||||
controller = GTK_EVENT_CONTROLLER (gtk_gesture_click_new ());
|
controller = GTK_EVENT_CONTROLLER (gtk_gesture_click_new ());
|
||||||
g_signal_connect_object (controller,
|
g_signal_connect_object (controller,
|
||||||
"pressed",
|
"pressed",
|
||||||
@ -626,25 +617,34 @@ sysprof_tree_expander_set_suffix (SysprofTreeExpander *self,
|
|||||||
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_SUFFIX]);
|
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_SUFFIX]);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
GtkWidget *
|
||||||
sysprof_tree_expander_get_title (SysprofTreeExpander *self)
|
sysprof_tree_expander_get_child (SysprofTreeExpander *self)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (SYSPROF_IS_TREE_EXPANDER (self), NULL);
|
g_return_val_if_fail (SYSPROF_IS_TREE_EXPANDER (self), NULL);
|
||||||
|
|
||||||
return gtk_label_get_label (GTK_LABEL (self->title));
|
return self->child;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
sysprof_tree_expander_set_title (SysprofTreeExpander *self,
|
sysprof_tree_expander_set_child (SysprofTreeExpander *self,
|
||||||
const char *title)
|
GtkWidget *child)
|
||||||
{
|
{
|
||||||
g_return_if_fail (SYSPROF_IS_TREE_EXPANDER (self));
|
g_return_if_fail (SYSPROF_IS_TREE_EXPANDER (self));
|
||||||
|
|
||||||
if (g_strcmp0 (title, sysprof_tree_expander_get_title (self)) != 0)
|
if (child == self->child)
|
||||||
{
|
return;
|
||||||
gtk_label_set_label (GTK_LABEL (self->title), title);
|
|
||||||
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_TITLE]);
|
if (child)
|
||||||
}
|
g_object_ref (child);
|
||||||
|
|
||||||
|
g_clear_pointer (&self->child, gtk_widget_unparent);
|
||||||
|
|
||||||
|
self->child = child;
|
||||||
|
|
||||||
|
if (child)
|
||||||
|
gtk_widget_insert_after (child, GTK_WIDGET (self), self->image);
|
||||||
|
|
||||||
|
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_CHILD]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -677,7 +677,7 @@ sysprof_tree_expander_clear_list_row (SysprofTreeExpander *self)
|
|||||||
|
|
||||||
g_clear_object (&self->list_row);
|
g_clear_object (&self->list_row);
|
||||||
|
|
||||||
gtk_label_set_label (GTK_LABEL (self->title), NULL);
|
gtk_label_set_label (GTK_LABEL (self->child), NULL);
|
||||||
gtk_image_set_from_icon_name (GTK_IMAGE (self->image), NULL);
|
gtk_image_set_from_icon_name (GTK_IMAGE (self->image), NULL);
|
||||||
|
|
||||||
child = gtk_widget_get_prev_sibling (self->image);
|
child = gtk_widget_get_prev_sibling (self->image);
|
||||||
@ -729,7 +729,7 @@ sysprof_tree_expander_get_use_markup (SysprofTreeExpander *self)
|
|||||||
{
|
{
|
||||||
g_return_val_if_fail (SYSPROF_IS_TREE_EXPANDER (self), FALSE);
|
g_return_val_if_fail (SYSPROF_IS_TREE_EXPANDER (self), FALSE);
|
||||||
|
|
||||||
return gtk_label_get_use_markup (GTK_LABEL (self->title));
|
return gtk_label_get_use_markup (GTK_LABEL (self->child));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -742,7 +742,7 @@ sysprof_tree_expander_set_use_markup (SysprofTreeExpander *self,
|
|||||||
|
|
||||||
if (use_markup != sysprof_tree_expander_get_use_markup (self))
|
if (use_markup != sysprof_tree_expander_get_use_markup (self))
|
||||||
{
|
{
|
||||||
gtk_label_set_use_markup (GTK_LABEL (self->title), use_markup);
|
gtk_label_set_use_markup (GTK_LABEL (self->child), use_markup);
|
||||||
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_USE_MARKUP]);
|
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_USE_MARKUP]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -42,9 +42,9 @@ void sysprof_tree_expander_set_expanded_icon (SysprofTreeExpande
|
|||||||
GIcon *icon);
|
GIcon *icon);
|
||||||
void sysprof_tree_expander_set_expanded_icon_name (SysprofTreeExpander *self,
|
void sysprof_tree_expander_set_expanded_icon_name (SysprofTreeExpander *self,
|
||||||
const char *expanded_icon_name);
|
const char *expanded_icon_name);
|
||||||
const char *sysprof_tree_expander_get_title (SysprofTreeExpander *self);
|
GtkWidget *sysprof_tree_expander_get_child (SysprofTreeExpander *self);
|
||||||
void sysprof_tree_expander_set_title (SysprofTreeExpander *self,
|
void sysprof_tree_expander_set_child (SysprofTreeExpander *self,
|
||||||
const char *title);
|
GtkWidget *child);
|
||||||
GtkWidget *sysprof_tree_expander_get_suffix (SysprofTreeExpander *self);
|
GtkWidget *sysprof_tree_expander_get_suffix (SysprofTreeExpander *self);
|
||||||
void sysprof_tree_expander_set_suffix (SysprofTreeExpander *self,
|
void sysprof_tree_expander_set_suffix (SysprofTreeExpander *self,
|
||||||
GtkWidget *suffix);
|
GtkWidget *suffix);
|
||||||
|
|||||||
Reference in New Issue
Block a user