[gtk+] inspector: Show the frame clock in misc
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] inspector: Show the frame clock in misc
- Date: Thu, 10 Mar 2016 21:22:29 +0000 (UTC)
commit 2b773e07e3253075312e4b84da16a1b08f54b261
Author: Matthias Clasen <mclasen redhat com>
Date: Thu Mar 10 16:21:35 2016 -0500
inspector: Show the frame clock in misc
There is no convenient way to get a handle on the frame clock,
otherwise, and the frame clock object is where we show the frame
rate...
gtk/inspector/misc-info.c | 42 +++++++++++++++++++++++++++++++++++++++
gtk/inspector/misc-info.ui | 47 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 89 insertions(+), 0 deletions(-)
---
diff --git a/gtk/inspector/misc-info.c b/gtk/inspector/misc-info.c
index 53182c7..a26f57b 100644
--- a/gtk/inspector/misc-info.c
+++ b/gtk/inspector/misc-info.c
@@ -59,6 +59,9 @@ struct _GtkInspectorMiscInfoPrivate {
GtkWidget *baseline;
GtkWidget *clip_area_row;
GtkWidget *clip_area;
+ GtkWidget *frame_clock_row;
+ GtkWidget *frame_clock;
+ GtkWidget *frame_clock_button;
GtkWidget *tick_callback_row;
GtkWidget *tick_callback;
GtkWidget *framerate_row;
@@ -284,6 +287,37 @@ show_mnemonic_label (GtkWidget *button, GtkInspectorMiscInfo *sl)
show_object (sl, G_OBJECT (widget), "properties");
}
+static void
+show_frame_clock (GtkWidget *button, GtkInspectorMiscInfo *sl)
+{
+ GObject *clock;
+
+ clock = (GObject *)gtk_widget_get_frame_clock (GTK_WIDGET (sl->priv->object));
+ if (clock)
+ show_object (sl, G_OBJECT (clock), "properties");
+}
+
+static void
+update_frame_clock (GtkInspectorMiscInfo *sl)
+{
+ GObject *clock;
+
+ clock = (GObject *)gtk_widget_get_frame_clock (GTK_WIDGET (sl->priv->object));
+ if (clock)
+ {
+ gchar *tmp;
+ tmp = g_strdup_printf ("%p", clock);
+ gtk_label_set_label (GTK_LABEL (sl->priv->frame_clock), tmp);
+ g_free (tmp);
+ gtk_widget_set_sensitive (sl->priv->frame_clock_button, TRUE);
+ }
+ else
+ {
+ gtk_label_set_label (GTK_LABEL (sl->priv->frame_clock), "NULL");
+ gtk_widget_set_sensitive (sl->priv->frame_clock_button, FALSE);
+ }
+}
+
static gboolean
update_info (gpointer data)
{
@@ -334,6 +368,8 @@ update_info (gpointer data)
gtk_widget_set_visible (sl->priv->realized, gtk_widget_get_realized (GTK_WIDGET (sl->priv->object)));
gtk_widget_set_visible (sl->priv->is_toplevel, gtk_widget_is_toplevel (GTK_WIDGET (sl->priv->object)));
gtk_widget_set_visible (sl->priv->child_visible, gtk_widget_get_child_visible (GTK_WIDGET
(sl->priv->object)));
+
+ update_frame_clock (sl);
}
if (GTK_IS_BUILDABLE (sl->priv->object))
@@ -425,6 +461,7 @@ gtk_inspector_misc_info_set_object (GtkInspectorMiscInfo *sl,
gtk_widget_show (sl->priv->realized_row);
gtk_widget_show (sl->priv->is_toplevel_row);
gtk_widget_show (sl->priv->is_toplevel_row);
+ gtk_widget_show (sl->priv->frame_clock_row);
g_signal_connect_object (object, "state-flags-changed", G_CALLBACK (state_flags_changed), sl, 0);
state_flags_changed (GTK_WIDGET (sl->priv->object), 0, sl);
@@ -448,6 +485,7 @@ gtk_inspector_misc_info_set_object (GtkInspectorMiscInfo *sl,
gtk_widget_hide (sl->priv->realized_row);
gtk_widget_hide (sl->priv->is_toplevel_row);
gtk_widget_hide (sl->priv->child_visible_row);
+ gtk_widget_hide (sl->priv->frame_clock_row);
}
if (GTK_IS_BUILDABLE (object))
@@ -595,6 +633,9 @@ gtk_inspector_misc_info_class_init (GtkInspectorMiscInfoClass *klass)
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, baseline);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, clip_area_row);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, clip_area);
+ gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, frame_clock_row);
+ gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, frame_clock);
+ gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, frame_clock_button);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, tick_callback_row);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, tick_callback);
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorMiscInfo, framecount_row);
@@ -618,6 +659,7 @@ gtk_inspector_misc_info_class_init (GtkInspectorMiscInfoClass *klass)
gtk_widget_class_bind_template_callback (widget_class, show_default_widget);
gtk_widget_class_bind_template_callback (widget_class, show_focus_widget);
+ gtk_widget_class_bind_template_callback (widget_class, show_frame_clock);
}
// vim: set et sw=2 ts=2:
diff --git a/gtk/inspector/misc-info.ui b/gtk/inspector/misc-info.ui
index b37d747..04cbfe5 100644
--- a/gtk/inspector/misc-info.ui
+++ b/gtk/inspector/misc-info.ui
@@ -197,6 +197,7 @@
</child>
</object>
</child>
+
<child>
<object class="GtkListBoxRow" id="focus_widget_row">
<property name="visible">True</property>
@@ -414,6 +415,51 @@
</child>
<child>
+ <object class="GtkListBoxRow" id="frame_clock_row">
+ <property name="visible">True</property>
+ <property name="activatable">False</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">horizontal</property>
+ <property name="margin">10</property>
+ <property name="spacing">40</property>
+ <child>
+ <object class="GtkLabel" id="frame_clock_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Frame Clock</property>
+ <property name="halign">start</property>
+ <property name="valign">baseline</property>
+ <property name="xalign">0.0</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="frame_clock">
+ <property name="visible">True</property>
+ <property name="selectable">True</property>
+ <property name="halign">end</property>
+ <property name="valign">baseline</property>
+ <property name="ellipsize">end</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="frame_clock_button">
+ <property name="visible">True</property>
+ <property name="halign">end</property>
+ <property name="valign">baseline</property>
+ <property name="label" translatable="yes">Properties</property>
+ <signal name="clicked" handler="show_frame_clock"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+
+ <child>
<object class="GtkListBoxRow" id="tick_callback_row">
<property name="visible">true</property>
<property name="activatable">false</property>
@@ -781,6 +827,7 @@
<widget name="buildable_id_label"/>
<widget name="default_widget_label"/>
<widget name="focus_widget_label"/>
+ <widget name="frame_clock_label"/>
</widgets>
</object>
</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]