1e7b3ba6dSNamhyung Kim #ifndef _PERF_GTK_H_ 2e7b3ba6dSNamhyung Kim #define _PERF_GTK_H_ 1 3e7b3ba6dSNamhyung Kim 442ab68a3SNamhyung Kim #include <stdbool.h> 542ab68a3SNamhyung Kim 6e7b3ba6dSNamhyung Kim #pragma GCC diagnostic ignored "-Wstrict-prototypes" 7e7b3ba6dSNamhyung Kim #include <gtk/gtk.h> 8e7b3ba6dSNamhyung Kim #pragma GCC diagnostic error "-Wstrict-prototypes" 9e7b3ba6dSNamhyung Kim 1042ab68a3SNamhyung Kim 1142ab68a3SNamhyung Kim struct perf_gtk_context { 1242ab68a3SNamhyung Kim GtkWidget *main_window; 137a60ba94SNamhyung Kim GtkWidget *notebook; 14a6b702c1SNamhyung Kim 1589fe808aSIngo Molnar #ifdef HAVE_GTK_INFO_BAR_SUPPORT 16a6b702c1SNamhyung Kim GtkWidget *info_bar; 17a6b702c1SNamhyung Kim GtkWidget *message_label; 18a6b702c1SNamhyung Kim #endif 19b4418c68SNamhyung Kim GtkWidget *statbar; 20b4418c68SNamhyung Kim guint statbar_ctx_id; 2142ab68a3SNamhyung Kim }; 2242ab68a3SNamhyung Kim 23fc67297bSNamhyung Kim int perf_gtk__init(void); 24fc67297bSNamhyung Kim void perf_gtk__exit(bool wait_for_ok); 25fc67297bSNamhyung Kim 2642ab68a3SNamhyung Kim extern struct perf_gtk_context *pgctx; 2742ab68a3SNamhyung Kim 2842ab68a3SNamhyung Kim static inline bool perf_gtk__is_active_context(struct perf_gtk_context *ctx) 2942ab68a3SNamhyung Kim { 3042ab68a3SNamhyung Kim return ctx && ctx->main_window; 3142ab68a3SNamhyung Kim } 3242ab68a3SNamhyung Kim 3342ab68a3SNamhyung Kim struct perf_gtk_context *perf_gtk__activate_context(GtkWidget *window); 3442ab68a3SNamhyung Kim int perf_gtk__deactivate_context(struct perf_gtk_context **ctx); 3542ab68a3SNamhyung Kim 364bb1646aSNamhyung Kim void perf_gtk__init_helpline(void); 37a753579cSNamhyung Kim void perf_gtk__init_progress(void); 3812ceadedSNamhyung Kim void perf_gtk__init_hpp(void); 394bb1646aSNamhyung Kim 400da41ce9SNamhyung Kim void perf_gtk__signal(int sig); 410da41ce9SNamhyung Kim void perf_gtk__resize_window(GtkWidget *window); 420da41ce9SNamhyung Kim const char *perf_gtk__get_percent_color(double percent); 430da41ce9SNamhyung Kim GtkWidget *perf_gtk__setup_statusbar(void); 440da41ce9SNamhyung Kim 4589fe808aSIngo Molnar #ifdef HAVE_GTK_INFO_BAR_SUPPORT 460da41ce9SNamhyung Kim GtkWidget *perf_gtk__setup_info_bar(void); 470da41ce9SNamhyung Kim #else 48a6b702c1SNamhyung Kim static inline GtkWidget *perf_gtk__setup_info_bar(void) 49a6b702c1SNamhyung Kim { 50a6b702c1SNamhyung Kim return NULL; 51a6b702c1SNamhyung Kim } 52a6b702c1SNamhyung Kim #endif 53a6b702c1SNamhyung Kim 54fc67297bSNamhyung Kim struct perf_evsel; 55fc67297bSNamhyung Kim struct perf_evlist; 56fc67297bSNamhyung Kim struct hist_entry; 57fc67297bSNamhyung Kim struct hist_browser_timer; 58fc67297bSNamhyung Kim 59fc67297bSNamhyung Kim int perf_evlist__gtk_browse_hists(struct perf_evlist *evlist, const char *help, 60fc67297bSNamhyung Kim struct hist_browser_timer *hbt, 61fc67297bSNamhyung Kim float min_pcnt); 62fc67297bSNamhyung Kim int hist_entry__gtk_annotate(struct hist_entry *he, 63fc67297bSNamhyung Kim struct perf_evsel *evsel, 64fc67297bSNamhyung Kim struct hist_browser_timer *hbt); 65fc67297bSNamhyung Kim void perf_gtk__show_annotations(void); 66fc67297bSNamhyung Kim 67e7b3ba6dSNamhyung Kim #endif /* _PERF_GTK_H_ */ 68