mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2026-02-10 23:20:54 +00:00
libsysprof: add a tooltip-text helper
This commit is contained in:
@ -31,6 +31,7 @@ enum {
|
|||||||
PROP_BINARY_PATH,
|
PROP_BINARY_PATH,
|
||||||
PROP_KIND,
|
PROP_KIND,
|
||||||
PROP_NAME,
|
PROP_NAME,
|
||||||
|
PROP_TOOLTIP_TEXT,
|
||||||
N_PROPS
|
N_PROPS
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -74,6 +75,10 @@ sysprof_symbol_get_property (GObject *object,
|
|||||||
g_value_set_enum (value, sysprof_symbol_get_kind (self));
|
g_value_set_enum (value, sysprof_symbol_get_kind (self));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PROP_TOOLTIP_TEXT:
|
||||||
|
g_value_take_string (value, sysprof_symbol_dup_tooltip_text (self));
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
}
|
}
|
||||||
@ -102,6 +107,11 @@ sysprof_symbol_class_init (SysprofSymbolClass *klass)
|
|||||||
NULL,
|
NULL,
|
||||||
(G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
(G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
||||||
|
|
||||||
|
properties [PROP_TOOLTIP_TEXT] =
|
||||||
|
g_param_spec_string ("tooltip-text", NULL, NULL,
|
||||||
|
NULL,
|
||||||
|
(G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
||||||
|
|
||||||
properties [PROP_KIND] =
|
properties [PROP_KIND] =
|
||||||
g_param_spec_enum ("kind", NULL, NULL,
|
g_param_spec_enum ("kind", NULL, NULL,
|
||||||
SYSPROF_TYPE_SYMBOL_KIND,
|
SYSPROF_TYPE_SYMBOL_KIND,
|
||||||
@ -200,6 +210,27 @@ sysprof_symbol_get_kind (SysprofSymbol *self)
|
|||||||
return self ? self->kind : 0;
|
return self ? self->kind : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* sysprof_symbol_dup_tooltip_text:
|
||||||
|
* @self: a #SysprofSymbol
|
||||||
|
*
|
||||||
|
* Returns: (transfer full): the tooltip text
|
||||||
|
*/
|
||||||
|
char *
|
||||||
|
sysprof_symbol_dup_tooltip_text (SysprofSymbol *self)
|
||||||
|
{
|
||||||
|
GString *str;
|
||||||
|
|
||||||
|
g_return_val_if_fail (SYSPROF_IS_SYMBOL (self), NULL);
|
||||||
|
|
||||||
|
str = g_string_new (self->name);
|
||||||
|
|
||||||
|
if (!g_str_has_prefix (str->str, "In File") && self->binary_path)
|
||||||
|
g_string_append_printf (str, " [%s+0x%"G_GINT64_MODIFIER"x]", self->binary_path, self->begin_address);
|
||||||
|
|
||||||
|
return g_string_free (str, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
G_DEFINE_ENUM_TYPE (SysprofSymbolKind, sysprof_symbol_kind,
|
G_DEFINE_ENUM_TYPE (SysprofSymbolKind, sysprof_symbol_kind,
|
||||||
G_DEFINE_ENUM_VALUE (SYSPROF_SYMBOL_KIND_ROOT, "root"),
|
G_DEFINE_ENUM_VALUE (SYSPROF_SYMBOL_KIND_ROOT, "root"),
|
||||||
G_DEFINE_ENUM_VALUE (SYSPROF_SYMBOL_KIND_PROCESS, "process"),
|
G_DEFINE_ENUM_VALUE (SYSPROF_SYMBOL_KIND_PROCESS, "process"),
|
||||||
|
|||||||
@ -45,19 +45,21 @@ SYSPROF_AVAILABLE_IN_ALL
|
|||||||
G_DECLARE_FINAL_TYPE (SysprofSymbol, sysprof_symbol, SYSPROF, SYMBOL, GObject)
|
G_DECLARE_FINAL_TYPE (SysprofSymbol, sysprof_symbol, SYSPROF, SYMBOL, GObject)
|
||||||
|
|
||||||
SYSPROF_AVAILABLE_IN_ALL
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
GType sysprof_symbol_kind_get_type (void) G_GNUC_CONST;
|
GType sysprof_symbol_kind_get_type (void) G_GNUC_CONST;
|
||||||
SYSPROF_AVAILABLE_IN_ALL
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
const char *sysprof_symbol_get_name (SysprofSymbol *self);
|
const char *sysprof_symbol_get_name (SysprofSymbol *self);
|
||||||
SYSPROF_AVAILABLE_IN_ALL
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
const char *sysprof_symbol_get_binary_nick (SysprofSymbol *self);
|
const char *sysprof_symbol_get_binary_nick (SysprofSymbol *self);
|
||||||
SYSPROF_AVAILABLE_IN_ALL
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
const char *sysprof_symbol_get_binary_path (SysprofSymbol *self);
|
const char *sysprof_symbol_get_binary_path (SysprofSymbol *self);
|
||||||
SYSPROF_AVAILABLE_IN_ALL
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
SysprofSymbolKind sysprof_symbol_get_kind (SysprofSymbol *self);
|
SysprofSymbolKind sysprof_symbol_get_kind (SysprofSymbol *self);
|
||||||
SYSPROF_AVAILABLE_IN_ALL
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
guint sysprof_symbol_hash (const SysprofSymbol *self);
|
guint sysprof_symbol_hash (const SysprofSymbol *self);
|
||||||
SYSPROF_AVAILABLE_IN_ALL
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
gboolean sysprof_symbol_equal (const SysprofSymbol *a,
|
gboolean sysprof_symbol_equal (const SysprofSymbol *a,
|
||||||
const SysprofSymbol *b);
|
const SysprofSymbol *b);
|
||||||
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
|
char *sysprof_symbol_dup_tooltip_text (SysprofSymbol *self);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|||||||
Reference in New Issue
Block a user