xref: /openbmc/linux/tools/perf/ui/gtk/gtk.h (revision 4bb1646a)
1e7b3ba6dSNamhyung Kim #ifndef _PERF_GTK_H_
2e7b3ba6dSNamhyung Kim #define _PERF_GTK_H_ 1
3e7b3ba6dSNamhyung Kim 
442ab68a3SNamhyung Kim #include <stdbool.h>
542ab68a3SNamhyung Kim 
6e7b3ba6dSNamhyung Kim #pragma GCC diagnostic ignored "-Wstrict-prototypes"
7e7b3ba6dSNamhyung Kim #include <gtk/gtk.h>
8e7b3ba6dSNamhyung Kim #pragma GCC diagnostic error "-Wstrict-prototypes"
9e7b3ba6dSNamhyung Kim 
1042ab68a3SNamhyung Kim 
1142ab68a3SNamhyung Kim struct perf_gtk_context {
1242ab68a3SNamhyung Kim 	GtkWidget *main_window;
13a6b702c1SNamhyung Kim 
14a6b702c1SNamhyung Kim #ifdef HAVE_GTK_INFO_BAR
15a6b702c1SNamhyung Kim 	GtkWidget *info_bar;
16a6b702c1SNamhyung Kim 	GtkWidget *message_label;
17a6b702c1SNamhyung Kim #endif
18b4418c68SNamhyung Kim 	GtkWidget *statbar;
19b4418c68SNamhyung Kim 	guint statbar_ctx_id;
2042ab68a3SNamhyung Kim };
2142ab68a3SNamhyung Kim 
2242ab68a3SNamhyung Kim extern struct perf_gtk_context *pgctx;
2342ab68a3SNamhyung Kim 
2442ab68a3SNamhyung Kim static inline bool perf_gtk__is_active_context(struct perf_gtk_context *ctx)
2542ab68a3SNamhyung Kim {
2642ab68a3SNamhyung Kim 	return ctx && ctx->main_window;
2742ab68a3SNamhyung Kim }
2842ab68a3SNamhyung Kim 
2942ab68a3SNamhyung Kim struct perf_gtk_context *perf_gtk__activate_context(GtkWidget *window);
3042ab68a3SNamhyung Kim int perf_gtk__deactivate_context(struct perf_gtk_context **ctx);
3142ab68a3SNamhyung Kim 
324bb1646aSNamhyung Kim void perf_gtk__init_helpline(void);
334bb1646aSNamhyung Kim 
34a6b702c1SNamhyung Kim #ifndef HAVE_GTK_INFO_BAR
35a6b702c1SNamhyung Kim static inline GtkWidget *perf_gtk__setup_info_bar(void)
36a6b702c1SNamhyung Kim {
37a6b702c1SNamhyung Kim 	return NULL;
38a6b702c1SNamhyung Kim }
39a6b702c1SNamhyung Kim #endif
40a6b702c1SNamhyung Kim 
41e7b3ba6dSNamhyung Kim #endif /* _PERF_GTK_H_ */
42