linux/tools/perf/ui/gtk/browser.c
<<
>>
Prefs
   1#include "../evlist.h"
   2#include "../cache.h"
   3#include "../evsel.h"
   4#include "../sort.h"
   5#include "../hist.h"
   6#include "../helpline.h"
   7#include "gtk.h"
   8
   9#include <signal.h>
  10
  11void perf_gtk__signal(int sig)
  12{
  13        perf_gtk__exit(false);
  14        psignal(sig, "perf");
  15}
  16
  17void perf_gtk__resize_window(GtkWidget *window)
  18{
  19        GdkRectangle rect;
  20        GdkScreen *screen;
  21        int monitor;
  22        int height;
  23        int width;
  24
  25        screen = gtk_widget_get_screen(window);
  26
  27        monitor = gdk_screen_get_monitor_at_window(screen, window->window);
  28
  29        gdk_screen_get_monitor_geometry(screen, monitor, &rect);
  30
  31        width   = rect.width * 3 / 4;
  32        height  = rect.height * 3 / 4;
  33
  34        gtk_window_resize(GTK_WINDOW(window), width, height);
  35}
  36
  37const char *perf_gtk__get_percent_color(double percent)
  38{
  39        if (percent >= MIN_RED)
  40                return "<span fgcolor='red'>";
  41        if (percent >= MIN_GREEN)
  42                return "<span fgcolor='dark green'>";
  43        return NULL;
  44}
  45
  46#ifdef HAVE_GTK_INFO_BAR
  47GtkWidget *perf_gtk__setup_info_bar(void)
  48{
  49        GtkWidget *info_bar;
  50        GtkWidget *label;
  51        GtkWidget *content_area;
  52
  53        info_bar = gtk_info_bar_new();
  54        gtk_widget_set_no_show_all(info_bar, TRUE);
  55
  56        label = gtk_label_new("");
  57        gtk_widget_show(label);
  58
  59        content_area = gtk_info_bar_get_content_area(GTK_INFO_BAR(info_bar));
  60        gtk_container_add(GTK_CONTAINER(content_area), label);
  61
  62        gtk_info_bar_add_button(GTK_INFO_BAR(info_bar), GTK_STOCK_OK,
  63                                GTK_RESPONSE_OK);
  64        g_signal_connect(info_bar, "response",
  65                         G_CALLBACK(gtk_widget_hide), NULL);
  66
  67        pgctx->info_bar = info_bar;
  68        pgctx->message_label = label;
  69
  70        return info_bar;
  71}
  72#endif
  73
  74GtkWidget *perf_gtk__setup_statusbar(void)
  75{
  76        GtkWidget *stbar;
  77        unsigned ctxid;
  78
  79        stbar = gtk_statusbar_new();
  80
  81        ctxid = gtk_statusbar_get_context_id(GTK_STATUSBAR(stbar),
  82                                             "perf report");
  83        pgctx->statbar = stbar;
  84        pgctx->statbar_ctx_id = ctxid;
  85
  86        return stbar;
  87}
  88