libsysprof-gtk: add pathological check for axis

That way we don't give values back that will not make any sense.
This commit is contained in:
Christian Hergert
2023-06-27 13:08:45 -07:00
parent f803b5ea3d
commit cf7d9dc7a4
3 changed files with 34 additions and 4 deletions

View File

@ -34,10 +34,11 @@ struct _SysprofAxisClass
{
GObjectClass parent_class;
void (*get_min_value) (SysprofAxis *axis,
GValue *min_value);
double (*normalize) (SysprofAxis *axis,
const GValue *value);
void (*get_min_value) (SysprofAxis *axis,
GValue *min_value);
double (*normalize) (SysprofAxis *axis,
const GValue *value);
gboolean (*is_pathological) (SysprofAxis *axis);
};
#define SYSPROF_AXIS_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS(obj, SYSPROF_TYPE_AXIS, SysprofAxisClass)
@ -56,6 +57,15 @@ _sysprof_axis_normalize (SysprofAxis *axis,
return SYSPROF_AXIS_GET_CLASS (axis)->normalize (axis, value);
}
static inline double
_sysprof_axis_is_pathological (SysprofAxis *axis)
{
if (SYSPROF_AXIS_GET_CLASS (axis)->is_pathological)
return SYSPROF_AXIS_GET_CLASS (axis)->is_pathological (axis);
return FALSE;
}
void _sysprof_axis_emit_range_changed (SysprofAxis *self);
G_END_DECLS