]> Pileus Git - ~andy/gtk/blob - perf/gtkwidgetprofiler.h
stylecontext: Do invalidation on first resize container
[~andy/gtk] / perf / gtkwidgetprofiler.h
1 #include <gtk/gtk.h>
2
3 #ifndef GTK_WIDGET_PROFILER_H
4 #define GTK_WIDGET_PROFILER_H
5
6 G_BEGIN_DECLS
7
8 #define GTK_TYPE_WIDGET_PROFILER                (gtk_widget_profiler_get_type ())
9 #define GTK_WIDGET_PROFILER(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_WIDGET_PROFILER, GtkWidgetProfiler))
10 #define GTK_WIDGET_PROFILER_CLASS(klass)        (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_WIDGET_PROFILER, GtkWidgetProfilerClass))
11 #define GTK_IS_WIDGET_PROFILER(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_WIDGET_PROFILER))
12 #define GTK_IS_WIDGET_PROFILER_CLASS(klass)     (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_WIDGET_PROFILER))
13 #define GTK_WIDGET_PROFILER_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_WIDGET_PROFILER, GtkWidgetProfilerClass))
14
15 typedef enum
16 {
17   GTK_WIDGET_PROFILER_REPORT_CREATE,
18   GTK_WIDGET_PROFILER_REPORT_MAP,
19   GTK_WIDGET_PROFILER_REPORT_EXPOSE,
20   GTK_WIDGET_PROFILER_REPORT_DESTROY
21 } GtkWidgetProfilerReport;
22
23 typedef struct _GtkWidgetProfiler GtkWidgetProfiler;
24 typedef struct _GtkWidgetProfilerClass GtkWidgetProfilerClass;
25 typedef struct _GtkWidgetProfilerPrivate GtkWidgetProfilerPrivate;
26
27 struct _GtkWidgetProfiler {
28         GObject object;
29
30         GtkWidgetProfilerPrivate *priv;
31 };
32
33 struct _GtkWidgetProfilerClass {
34         GObjectClass parent_class;
35
36         /* signals */
37
38         GtkWidget *(* create_widget) (GtkWidgetProfiler *profiler);
39
40         void (* report) (GtkWidgetProfiler      *profiler,
41                          GtkWidgetProfilerReport report,
42                          GtkWidget              *widget,
43                          gdouble                 elapsed);
44 };
45
46 GType gtk_widget_profiler_get_type (void) G_GNUC_CONST;
47
48 GtkWidgetProfiler *gtk_widget_profiler_new (void);
49
50 void gtk_widget_profiler_set_num_iterations (GtkWidgetProfiler *profiler,
51                                              gint               n_iterations);
52
53 void gtk_widget_profiler_profile_boot (GtkWidgetProfiler *profiler);
54
55 void gtk_widget_profiler_profile_expose (GtkWidgetProfiler *profiler);
56
57
58 G_END_DECLS
59
60 #endif