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 11struct 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 23int perf_gtk__init(void); 24void perf_gtk__exit(bool wait_for_ok); 25 26extern struct perf_gtk_context *pgctx; 27 28static inline bool perf_gtk__is_active_context(struct perf_gtk_context *ctx) 29{ 30 return ctx && ctx->main_window; 31} 32 33struct perf_gtk_context *perf_gtk__activate_context(GtkWidget *window); 34int perf_gtk__deactivate_context(struct perf_gtk_context **ctx); 35 36void perf_gtk__init_helpline(void); 37void gtk_ui_progress__init(void); 38void perf_gtk__init_hpp(void); 39 40void perf_gtk__signal(int sig); 41void perf_gtk__resize_window(GtkWidget *window); 42const char *perf_gtk__get_percent_color(double percent); 43GtkWidget *perf_gtk__setup_statusbar(void); 44 45#ifdef HAVE_GTK_INFO_BAR_SUPPORT 46GtkWidget *perf_gtk__setup_info_bar(void); 47#else 48static inline GtkWidget *perf_gtk__setup_info_bar(void) 49{ 50 return NULL; 51} 52#endif 53 54struct perf_evsel; 55struct perf_evlist; 56struct hist_entry; 57struct hist_browser_timer; 58 59int perf_evlist__gtk_browse_hists(struct perf_evlist *evlist, const char *help, 60 struct hist_browser_timer *hbt, 61 float min_pcnt); 62int hist_entry__gtk_annotate(struct hist_entry *he, 63 struct perf_evsel *evsel, 64 struct hist_browser_timer *hbt); 65void perf_gtk__show_annotations(void); 66 67#endif /* _PERF_GTK_H_ */ 68