xref: /openbmc/linux/tools/perf/ui/gtk/gtk.h (revision f9a82c48)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _PERF_GTK_H_
3 #define _PERF_GTK_H_ 1
4 
5 #include <stdbool.h>
6 
7 #pragma GCC diagnostic ignored "-Wstrict-prototypes"
8 #include <gtk/gtk.h>
9 #pragma GCC diagnostic error "-Wstrict-prototypes"
10 
11 
12 struct perf_gtk_context {
13 	GtkWidget *main_window;
14 	GtkWidget *notebook;
15 
16 #ifdef HAVE_GTK_INFO_BAR_SUPPORT
17 	GtkWidget *info_bar;
18 	GtkWidget *message_label;
19 #endif
20 	GtkWidget *statbar;
21 	guint statbar_ctx_id;
22 };
23 
24 int perf_gtk__init(void);
25 void perf_gtk__exit(bool wait_for_ok);
26 
27 extern struct perf_gtk_context *pgctx;
28 
29 static inline bool perf_gtk__is_active_context(struct perf_gtk_context *ctx)
30 {
31 	return ctx && ctx->main_window;
32 }
33 
34 struct perf_gtk_context *perf_gtk__activate_context(GtkWidget *window);
35 int perf_gtk__deactivate_context(struct perf_gtk_context **ctx);
36 
37 void perf_gtk__init_helpline(void);
38 void gtk_ui_progress__init(void);
39 void perf_gtk__init_hpp(void);
40 
41 void perf_gtk__signal(int sig);
42 void perf_gtk__resize_window(GtkWidget *window);
43 const char *perf_gtk__get_percent_color(double percent);
44 GtkWidget *perf_gtk__setup_statusbar(void);
45 
46 #ifdef HAVE_GTK_INFO_BAR_SUPPORT
47 GtkWidget *perf_gtk__setup_info_bar(void);
48 #else
49 static inline GtkWidget *perf_gtk__setup_info_bar(void)
50 {
51 	return NULL;
52 }
53 #endif
54 
55 struct perf_evsel;
56 struct perf_evlist;
57 struct hist_entry;
58 struct hist_browser_timer;
59 
60 int perf_evlist__gtk_browse_hists(struct perf_evlist *evlist, const char *help,
61 				  struct hist_browser_timer *hbt,
62 				  float min_pcnt);
63 int hist_entry__gtk_annotate(struct hist_entry *he,
64 			     struct perf_evsel *evsel,
65 			     struct hist_browser_timer *hbt);
66 void perf_gtk__show_annotations(void);
67 
68 #endif /* _PERF_GTK_H_ */
69