mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-26 05:31:07 +00:00
02c7cf7bee
2006-06-14 Federico Mena Quintero <federico@novell.com> * perf/gtkwidgetprofiler.c (gtk_widget_profiler_profile_expose): New function; it lets us time the expose sequence of a widget. (create_widget): New helper function. (map_widget): New helper function. (profile_boot): Use create_widget() instead of doing it by hand. (profile_map_expose): Use map_widget() instead of doing it by hand. * perf/main.c (main): Call gtk_widget_profiler_profile_expose() as well.
61 lines
1.9 KiB
C
61 lines
1.9 KiB
C
#include <gtk/gtk.h>
|
|
|
|
#ifndef GTK_WIDGET_PROFILER_H
|
|
#define GTK_WIDGET_PROFILER_H
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
#define GTK_TYPE_WIDGET_PROFILER (gtk_widget_profiler_get_type ())
|
|
#define GTK_WIDGET_PROFILER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_WIDGET_PROFILER, GtkWidgetProfiler))
|
|
#define GTK_WIDGET_PROFILER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_WIDGET_PROFILER, GtkWidgetProfilerClass))
|
|
#define GTK_IS_WIDGET_PROFILER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_WIDGET_PROFILER))
|
|
#define GTK_IS_WIDGET_PROFILER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_WIDGET_PROFILER))
|
|
#define GTK_WIDGET_PROFILER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_WIDGET_PROFILER, GtkWidgetProfilerClass))
|
|
|
|
typedef enum
|
|
{
|
|
GTK_WIDGET_PROFILER_REPORT_CREATE,
|
|
GTK_WIDGET_PROFILER_REPORT_MAP,
|
|
GTK_WIDGET_PROFILER_REPORT_EXPOSE,
|
|
GTK_WIDGET_PROFILER_REPORT_DESTROY
|
|
} GtkWidgetProfilerReport;
|
|
|
|
typedef struct _GtkWidgetProfiler GtkWidgetProfiler;
|
|
typedef struct _GtkWidgetProfilerClass GtkWidgetProfilerClass;
|
|
typedef struct _GtkWidgetProfilerPrivate GtkWidgetProfilerPrivate;
|
|
|
|
struct _GtkWidgetProfiler {
|
|
GObject object;
|
|
|
|
GtkWidgetProfilerPrivate *priv;
|
|
};
|
|
|
|
struct _GtkWidgetProfilerClass {
|
|
GObjectClass parent_class;
|
|
|
|
/* signals */
|
|
|
|
GtkWidget *(* create_widget) (GtkWidgetProfiler *profiler);
|
|
|
|
void (* report) (GtkWidgetProfiler *profiler,
|
|
GtkWidgetProfilerReport report,
|
|
GtkWidget *widget,
|
|
gdouble elapsed);
|
|
};
|
|
|
|
GType gtk_widget_profiler_get_type (void) G_GNUC_CONST;
|
|
|
|
GtkWidgetProfiler *gtk_widget_profiler_new ();
|
|
|
|
void gtk_widget_profiler_set_num_iterations (GtkWidgetProfiler *profiler,
|
|
gint n_iterations);
|
|
|
|
void gtk_widget_profiler_profile_boot (GtkWidgetProfiler *profiler);
|
|
|
|
void gtk_widget_profiler_profile_expose (GtkWidgetProfiler *profiler);
|
|
|
|
|
|
G_END_DECLS
|
|
|
|
#endif
|