xref: /openbmc/linux/tools/perf/ui/gtk/gtk.h (revision 4779a2e9)
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;
137a60ba94SNamhyung Kim 	GtkWidget *notebook;
14a6b702c1SNamhyung Kim 
1589fe808aSIngo Molnar #ifdef HAVE_GTK_INFO_BAR_SUPPORT
16a6b702c1SNamhyung Kim 	GtkWidget *info_bar;
17a6b702c1SNamhyung Kim 	GtkWidget *message_label;
18a6b702c1SNamhyung Kim #endif
19b4418c68SNamhyung Kim 	GtkWidget *statbar;
20b4418c68SNamhyung Kim 	guint statbar_ctx_id;
2142ab68a3SNamhyung Kim };
2242ab68a3SNamhyung Kim 
23fc67297bSNamhyung Kim int perf_gtk__init(void);
24fc67297bSNamhyung Kim void perf_gtk__exit(bool wait_for_ok);
25fc67297bSNamhyung Kim 
2642ab68a3SNamhyung Kim extern struct perf_gtk_context *pgctx;
2742ab68a3SNamhyung Kim 
2842ab68a3SNamhyung Kim static inline bool perf_gtk__is_active_context(struct perf_gtk_context *ctx)
2942ab68a3SNamhyung Kim {
3042ab68a3SNamhyung Kim 	return ctx && ctx->main_window;
3142ab68a3SNamhyung Kim }
3242ab68a3SNamhyung Kim 
3342ab68a3SNamhyung Kim struct perf_gtk_context *perf_gtk__activate_context(GtkWidget *window);
3442ab68a3SNamhyung Kim int perf_gtk__deactivate_context(struct perf_gtk_context **ctx);
3542ab68a3SNamhyung Kim 
364bb1646aSNamhyung Kim void perf_gtk__init_helpline(void);
374779a2e9SArnaldo Carvalho de Melo void gtk_ui_progress__init(void);
3812ceadedSNamhyung Kim void perf_gtk__init_hpp(void);
394bb1646aSNamhyung Kim 
400da41ce9SNamhyung Kim void perf_gtk__signal(int sig);
410da41ce9SNamhyung Kim void perf_gtk__resize_window(GtkWidget *window);
420da41ce9SNamhyung Kim const char *perf_gtk__get_percent_color(double percent);
430da41ce9SNamhyung Kim GtkWidget *perf_gtk__setup_statusbar(void);
440da41ce9SNamhyung Kim 
4589fe808aSIngo Molnar #ifdef HAVE_GTK_INFO_BAR_SUPPORT
460da41ce9SNamhyung Kim GtkWidget *perf_gtk__setup_info_bar(void);
470da41ce9SNamhyung Kim #else
48a6b702c1SNamhyung Kim static inline GtkWidget *perf_gtk__setup_info_bar(void)
49a6b702c1SNamhyung Kim {
50a6b702c1SNamhyung Kim 	return NULL;
51a6b702c1SNamhyung Kim }
52a6b702c1SNamhyung Kim #endif
53a6b702c1SNamhyung Kim 
54fc67297bSNamhyung Kim struct perf_evsel;
55fc67297bSNamhyung Kim struct perf_evlist;
56fc67297bSNamhyung Kim struct hist_entry;
57fc67297bSNamhyung Kim struct hist_browser_timer;
58fc67297bSNamhyung Kim 
59fc67297bSNamhyung Kim int perf_evlist__gtk_browse_hists(struct perf_evlist *evlist, const char *help,
60fc67297bSNamhyung Kim 				  struct hist_browser_timer *hbt,
61fc67297bSNamhyung Kim 				  float min_pcnt);
62fc67297bSNamhyung Kim int hist_entry__gtk_annotate(struct hist_entry *he,
63fc67297bSNamhyung Kim 			     struct perf_evsel *evsel,
64fc67297bSNamhyung Kim 			     struct hist_browser_timer *hbt);
65fc67297bSNamhyung Kim void perf_gtk__show_annotations(void);
66fc67297bSNamhyung Kim 
67e7b3ba6dSNamhyung Kim #endif /* _PERF_GTK_H_ */
68