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