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