gtk/perf/gtkwidgetprofiler.h
Federico Mena Quintero 02c7cf7bee New function; it lets us time the expose sequence of a widget.
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.
2006-06-14 21:24:31 +00:00

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