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 perf_gtk__is_active_context(struct perf_gtk_context * ctx)29static 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 perf_gtk__setup_info_bar(void)49static inline GtkWidget *perf_gtk__setup_info_bar(void) 50 { 51 return NULL; 52 } 53 #endif 54 55 struct evsel; 56 struct evlist; 57 struct hist_entry; 58 struct hist_browser_timer; 59 60 int perf_evlist__gtk_browse_hists(struct 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 evsel *evsel, 65 struct hist_browser_timer *hbt); 66 void perf_gtk__show_annotations(void); 67 68 #endif /* _PERF_GTK_H_ */ 69