mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2025-12-31 20:36:25 +00:00
libsysprof: add a tooltip-text helper
This commit is contained in:
@ -31,6 +31,7 @@ enum {
|
||||
PROP_BINARY_PATH,
|
||||
PROP_KIND,
|
||||
PROP_NAME,
|
||||
PROP_TOOLTIP_TEXT,
|
||||
N_PROPS
|
||||
};
|
||||
|
||||
@ -74,6 +75,10 @@ sysprof_symbol_get_property (GObject *object,
|
||||
g_value_set_enum (value, sysprof_symbol_get_kind (self));
|
||||
break;
|
||||
|
||||
case PROP_TOOLTIP_TEXT:
|
||||
g_value_take_string (value, sysprof_symbol_dup_tooltip_text (self));
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
}
|
||||
@ -102,6 +107,11 @@ sysprof_symbol_class_init (SysprofSymbolClass *klass)
|
||||
NULL,
|
||||
(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] =
|
||||
g_param_spec_enum ("kind", NULL, NULL,
|
||||
SYSPROF_TYPE_SYMBOL_KIND,
|
||||
@ -200,6 +210,27 @@ sysprof_symbol_get_kind (SysprofSymbol *self)
|
||||
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_VALUE (SYSPROF_SYMBOL_KIND_ROOT, "root"),
|
||||
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)
|
||||
|
||||
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
|
||||
const char *sysprof_symbol_get_name (SysprofSymbol *self);
|
||||
const char *sysprof_symbol_get_name (SysprofSymbol *self);
|
||||
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
|
||||
const char *sysprof_symbol_get_binary_path (SysprofSymbol *self);
|
||||
const char *sysprof_symbol_get_binary_path (SysprofSymbol *self);
|
||||
SYSPROF_AVAILABLE_IN_ALL
|
||||
SysprofSymbolKind sysprof_symbol_get_kind (SysprofSymbol *self);
|
||||
SysprofSymbolKind sysprof_symbol_get_kind (SysprofSymbol *self);
|
||||
SYSPROF_AVAILABLE_IN_ALL
|
||||
guint sysprof_symbol_hash (const SysprofSymbol *self);
|
||||
guint sysprof_symbol_hash (const SysprofSymbol *self);
|
||||
SYSPROF_AVAILABLE_IN_ALL
|
||||
gboolean sysprof_symbol_equal (const SysprofSymbol *a,
|
||||
const SysprofSymbol *b);
|
||||
gboolean sysprof_symbol_equal (const SysprofSymbol *a,
|
||||
const SysprofSymbol *b);
|
||||
SYSPROF_AVAILABLE_IN_ALL
|
||||
char *sysprof_symbol_dup_tooltip_text (SysprofSymbol *self);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
Reference in New Issue
Block a user