1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2e7b3ba6dSNamhyung Kim #ifndef _PERF_GTK_H_ 3e7b3ba6dSNamhyung Kim #define _PERF_GTK_H_ 1 4e7b3ba6dSNamhyung Kim 542ab68a3SNamhyung Kim #include <stdbool.h> 642ab68a3SNamhyung Kim 7e7b3ba6dSNamhyung Kim #pragma GCC diagnostic ignored "-Wstrict-prototypes" 8e7b3ba6dSNamhyung Kim #include <gtk/gtk.h> 9e7b3ba6dSNamhyung Kim #pragma GCC diagnostic error "-Wstrict-prototypes" 10e7b3ba6dSNamhyung Kim 1142ab68a3SNamhyung Kim 1242ab68a3SNamhyung Kim struct perf_gtk_context { 1342ab68a3SNamhyung Kim GtkWidget *main_window; 147a60ba94SNamhyung Kim GtkWidget *notebook; 15a6b702c1SNamhyung Kim 1689fe808aSIngo Molnar #ifdef HAVE_GTK_INFO_BAR_SUPPORT 17a6b702c1SNamhyung Kim GtkWidget *info_bar; 18a6b702c1SNamhyung Kim GtkWidget *message_label; 19a6b702c1SNamhyung Kim #endif 20b4418c68SNamhyung Kim GtkWidget *statbar; 21b4418c68SNamhyung Kim guint statbar_ctx_id; 2242ab68a3SNamhyung Kim }; 2342ab68a3SNamhyung Kim 24fc67297bSNamhyung Kim int perf_gtk__init(void); 25fc67297bSNamhyung Kim void perf_gtk__exit(bool wait_for_ok); 26fc67297bSNamhyung Kim 2742ab68a3SNamhyung Kim extern struct perf_gtk_context *pgctx; 2842ab68a3SNamhyung Kim 2942ab68a3SNamhyung Kim static inline bool perf_gtk__is_active_context(struct perf_gtk_context *ctx) 3042ab68a3SNamhyung Kim { 3142ab68a3SNamhyung Kim return ctx && ctx->main_window; 3242ab68a3SNamhyung Kim } 3342ab68a3SNamhyung Kim 3442ab68a3SNamhyung Kim struct perf_gtk_context *perf_gtk__activate_context(GtkWidget *window); 3542ab68a3SNamhyung Kim int perf_gtk__deactivate_context(struct perf_gtk_context **ctx); 3642ab68a3SNamhyung Kim 374bb1646aSNamhyung Kim void perf_gtk__init_helpline(void); 384779a2e9SArnaldo Carvalho de Melo void gtk_ui_progress__init(void); 3912ceadedSNamhyung Kim void perf_gtk__init_hpp(void); 404bb1646aSNamhyung Kim 410da41ce9SNamhyung Kim void perf_gtk__signal(int sig); 420da41ce9SNamhyung Kim void perf_gtk__resize_window(GtkWidget *window); 430da41ce9SNamhyung Kim const char *perf_gtk__get_percent_color(double percent); 440da41ce9SNamhyung Kim GtkWidget *perf_gtk__setup_statusbar(void); 450da41ce9SNamhyung Kim 4689fe808aSIngo Molnar #ifdef HAVE_GTK_INFO_BAR_SUPPORT 470da41ce9SNamhyung Kim GtkWidget *perf_gtk__setup_info_bar(void); 480da41ce9SNamhyung Kim #else 49a6b702c1SNamhyung Kim static inline GtkWidget *perf_gtk__setup_info_bar(void) 50a6b702c1SNamhyung Kim { 51a6b702c1SNamhyung Kim return NULL; 52a6b702c1SNamhyung Kim } 53a6b702c1SNamhyung Kim #endif 54a6b702c1SNamhyung Kim 5532dcd021SJiri Olsa struct evsel; 56fc67297bSNamhyung Kim struct perf_evlist; 57fc67297bSNamhyung Kim struct hist_entry; 58fc67297bSNamhyung Kim struct hist_browser_timer; 59fc67297bSNamhyung Kim 60fc67297bSNamhyung Kim int perf_evlist__gtk_browse_hists(struct perf_evlist *evlist, const char *help, 61fc67297bSNamhyung Kim struct hist_browser_timer *hbt, 62fc67297bSNamhyung Kim float min_pcnt); 63fc67297bSNamhyung Kim int hist_entry__gtk_annotate(struct hist_entry *he, 6432dcd021SJiri Olsa struct evsel *evsel, 65fc67297bSNamhyung Kim struct hist_browser_timer *hbt); 66fc67297bSNamhyung Kim void perf_gtk__show_annotations(void); 67fc67297bSNamhyung Kim 68e7b3ba6dSNamhyung Kim #endif /* _PERF_GTK_H_ */ 69