xref: /openbmc/linux/tools/perf/ui/gtk/gtk.h (revision 0da41ce9)
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);
33a753579cSNamhyung Kim void perf_gtk__init_progress(void);
3412ceadedSNamhyung Kim void perf_gtk__init_hpp(void);
354bb1646aSNamhyung Kim 
360da41ce9SNamhyung Kim void perf_gtk__signal(int sig);
370da41ce9SNamhyung Kim void perf_gtk__resize_window(GtkWidget *window);
380da41ce9SNamhyung Kim const char *perf_gtk__get_percent_color(double percent);
390da41ce9SNamhyung Kim GtkWidget *perf_gtk__setup_statusbar(void);
400da41ce9SNamhyung Kim 
410da41ce9SNamhyung Kim #ifdef HAVE_GTK_INFO_BAR
420da41ce9SNamhyung Kim GtkWidget *perf_gtk__setup_info_bar(void);
430da41ce9SNamhyung Kim #else
44a6b702c1SNamhyung Kim static inline GtkWidget *perf_gtk__setup_info_bar(void)
45a6b702c1SNamhyung Kim {
46a6b702c1SNamhyung Kim 	return NULL;
47a6b702c1SNamhyung Kim }
48a6b702c1SNamhyung Kim #endif
49a6b702c1SNamhyung Kim 
50e7b3ba6dSNamhyung Kim #endif /* _PERF_GTK_H_ */
51