3 #include "gtkwidgetprofiler.h"
9 create_widget_cb (GtkWidgetProfiler
*profiler
, gpointer data
)
11 return appwindow_new ();
15 report_cb (GtkWidgetProfiler
*profiler
, GtkWidgetProfilerReport report
, GtkWidget
*widget
, gdouble elapsed
, gpointer data
)
20 case GTK_WIDGET_PROFILER_REPORT_CREATE
:
21 type
= "widget creation";
24 case GTK_WIDGET_PROFILER_REPORT_MAP
:
28 case GTK_WIDGET_PROFILER_REPORT_EXPOSE
:
29 type
= "widget expose";
32 case GTK_WIDGET_PROFILER_REPORT_DESTROY
:
33 type
= "widget destruction";
37 g_assert_not_reached ();
41 fprintf (stdout
, "%s: %g sec\n", type
, elapsed
);
43 if (report
== GTK_WIDGET_PROFILER_REPORT_DESTROY
)
48 main (int argc
, char **argv
)
50 GtkWidgetProfiler
*profiler
;
52 gtk_init (&argc
, &argv
);
54 profiler
= gtk_widget_profiler_new ();
55 g_signal_connect (profiler
, "create-widget",
56 G_CALLBACK (create_widget_cb
), NULL
);
57 g_signal_connect (profiler
, "report",
58 G_CALLBACK (report_cb
), NULL
);
60 gtk_widget_profiler_set_num_iterations (profiler
, ITERS
);
62 /* gtk_widget_profiler_profile_boot (profiler); */
63 gtk_widget_profiler_profile_expose (profiler
);