xref: /linux/tools/perf/ui/gtk/gtk.h (revision d608d71cd6d19792487d08333d63c7ff20294694)
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
16 	GtkWidget *info_bar;
17 	GtkWidget *message_label;
18 #endif
19 	GtkWidget *statbar;
20 	guint statbar_ctx_id;
21 };
22 
23 extern struct perf_gtk_context *pgctx;
24 
25 static inline bool perf_gtk__is_active_context(struct perf_gtk_context *ctx)
26 {
27 	return ctx && ctx->main_window;
28 }
29 
30 struct perf_gtk_context *perf_gtk__activate_context(GtkWidget *window);
31 int perf_gtk__deactivate_context(struct perf_gtk_context **ctx);
32 
33 void perf_gtk__init_helpline(void);
34 void perf_gtk__init_progress(void);
35 void perf_gtk__init_hpp(void);
36 
37 void perf_gtk__signal(int sig);
38 void perf_gtk__resize_window(GtkWidget *window);
39 const char *perf_gtk__get_percent_color(double percent);
40 GtkWidget *perf_gtk__setup_statusbar(void);
41 
42 #ifdef HAVE_GTK_INFO_BAR
43 GtkWidget *perf_gtk__setup_info_bar(void);
44 #else
45 static inline GtkWidget *perf_gtk__setup_info_bar(void)
46 {
47 	return NULL;
48 }
49 #endif
50 
51 #endif /* _PERF_GTK_H_ */
52