Add powerbox hook
[gtk-with-powerbox.git] / perf / main.c
blobd01573792640a940123499877dd63b5ef8fc3fab
1 #include <stdio.h>
2 #include <gtk/gtk.h>
3 #include "gtkwidgetprofiler.h"
4 #include "widgets.h"
6 #define ITERS 100000
8 static GtkWidget *
9 create_widget_cb (GtkWidgetProfiler *profiler, gpointer data)
11 return appwindow_new ();
14 static void
15 report_cb (GtkWidgetProfiler *profiler, GtkWidgetProfilerReport report, GtkWidget *widget, gdouble elapsed, gpointer data)
17 const char *type;
19 switch (report) {
20 case GTK_WIDGET_PROFILER_REPORT_CREATE:
21 type = "widget creation";
22 break;
24 case GTK_WIDGET_PROFILER_REPORT_MAP:
25 type = "widget map";
26 break;
28 case GTK_WIDGET_PROFILER_REPORT_EXPOSE:
29 type = "widget expose";
30 break;
32 case GTK_WIDGET_PROFILER_REPORT_DESTROY:
33 type = "widget destruction";
34 break;
36 default:
37 g_assert_not_reached ();
38 type = NULL;
41 fprintf (stdout, "%s: %g sec\n", type, elapsed);
43 if (report == GTK_WIDGET_PROFILER_REPORT_DESTROY)
44 fputs ("\n", stdout);
47 int
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);
65 return 0;