xref: /openbmc/linux/tools/perf/ui/gtk/gtk.h (revision 80e06e54)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2e7b3ba6dSNamhyung Kim #ifndef _PERF_GTK_H_
3e7b3ba6dSNamhyung Kim #define _PERF_GTK_H_ 1
4e7b3ba6dSNamhyung Kim 
542ab68a3SNamhyung Kim #include <stdbool.h>
642ab68a3SNamhyung Kim 
7e7b3ba6dSNamhyung Kim #pragma GCC diagnostic ignored "-Wstrict-prototypes"
8e7b3ba6dSNamhyung Kim #include <gtk/gtk.h>
9e7b3ba6dSNamhyung Kim #pragma GCC diagnostic error "-Wstrict-prototypes"
10e7b3ba6dSNamhyung Kim 
1142ab68a3SNamhyung Kim 
1242ab68a3SNamhyung Kim struct perf_gtk_context {
1342ab68a3SNamhyung Kim 	GtkWidget *main_window;
147a60ba94SNamhyung Kim 	GtkWidget *notebook;
15a6b702c1SNamhyung Kim 
1689fe808aSIngo Molnar #ifdef HAVE_GTK_INFO_BAR_SUPPORT
17a6b702c1SNamhyung Kim 	GtkWidget *info_bar;
18a6b702c1SNamhyung Kim 	GtkWidget *message_label;
19a6b702c1SNamhyung Kim #endif
20b4418c68SNamhyung Kim 	GtkWidget *statbar;
21b4418c68SNamhyung Kim 	guint statbar_ctx_id;
2242ab68a3SNamhyung Kim };
2342ab68a3SNamhyung Kim 
24fc67297bSNamhyung Kim int perf_gtk__init(void);
25fc67297bSNamhyung Kim void perf_gtk__exit(bool wait_for_ok);
26fc67297bSNamhyung Kim 
2742ab68a3SNamhyung Kim extern struct perf_gtk_context *pgctx;
2842ab68a3SNamhyung Kim 
perf_gtk__is_active_context(struct perf_gtk_context * ctx)2942ab68a3SNamhyung Kim static inline bool perf_gtk__is_active_context(struct perf_gtk_context *ctx)
3042ab68a3SNamhyung Kim {
3142ab68a3SNamhyung Kim 	return ctx && ctx->main_window;
3242ab68a3SNamhyung Kim }
3342ab68a3SNamhyung Kim 
3442ab68a3SNamhyung Kim struct perf_gtk_context *perf_gtk__activate_context(GtkWidget *window);
3542ab68a3SNamhyung Kim int perf_gtk__deactivate_context(struct perf_gtk_context **ctx);
3642ab68a3SNamhyung Kim 
374bb1646aSNamhyung Kim void perf_gtk__init_helpline(void);
384779a2e9SArnaldo Carvalho de Melo void gtk_ui_progress__init(void);
3912ceadedSNamhyung Kim void perf_gtk__init_hpp(void);
404bb1646aSNamhyung Kim 
410da41ce9SNamhyung Kim void perf_gtk__signal(int sig);
420da41ce9SNamhyung Kim void perf_gtk__resize_window(GtkWidget *window);
430da41ce9SNamhyung Kim const char *perf_gtk__get_percent_color(double percent);
440da41ce9SNamhyung Kim GtkWidget *perf_gtk__setup_statusbar(void);
450da41ce9SNamhyung Kim 
4689fe808aSIngo Molnar #ifdef HAVE_GTK_INFO_BAR_SUPPORT
470da41ce9SNamhyung Kim GtkWidget *perf_gtk__setup_info_bar(void);
480da41ce9SNamhyung Kim #else
perf_gtk__setup_info_bar(void)49a6b702c1SNamhyung Kim static inline GtkWidget *perf_gtk__setup_info_bar(void)
50a6b702c1SNamhyung Kim {
51a6b702c1SNamhyung Kim 	return NULL;
52a6b702c1SNamhyung Kim }
53a6b702c1SNamhyung Kim #endif
54a6b702c1SNamhyung Kim 
5532dcd021SJiri Olsa struct evsel;
5663503dbaSJiri Olsa struct evlist;
57fc67297bSNamhyung Kim struct hist_entry;
58fc67297bSNamhyung Kim struct hist_browser_timer;
59fc67297bSNamhyung Kim 
60*f4bd0b4aSArnaldo Carvalho de Melo int evlist__gtk_browse_hists(struct evlist *evlist, const char *help,
61*f4bd0b4aSArnaldo Carvalho de Melo 			     struct hist_browser_timer *hbt, float min_pcnt);
62fc67297bSNamhyung Kim int hist_entry__gtk_annotate(struct hist_entry *he,
6332dcd021SJiri Olsa 			     struct 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