Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 339033
b: refs/heads/master
c: a753579
h: refs/heads/master
i:
  339031: 494255f
v: v3
  • Loading branch information
Namhyung Kim authored and Arnaldo Carvalho de Melo committed Nov 14, 2012
1 parent 9e26517 commit ec09f67
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 688f2f5b99311b127ea43efdbf47bb2e3c7a2e32
refs/heads/master: a753579c3ec096bba9d24e1594a07dbb25aca8e4
1 change: 1 addition & 0 deletions trunk/tools/perf/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -648,6 +648,7 @@ ifndef NO_GTK2
LIB_OBJS += $(OUTPUT)ui/gtk/setup.o
LIB_OBJS += $(OUTPUT)ui/gtk/util.o
LIB_OBJS += $(OUTPUT)ui/gtk/helpline.o
LIB_OBJS += $(OUTPUT)ui/gtk/progress.o
# Make sure that it'd be included only once.
ifeq ($(findstring -DNEWT_SUPPORT,$(BASIC_CFLAGS)),)
LIB_OBJS += $(OUTPUT)ui/setup.o
Expand Down
1 change: 1 addition & 0 deletions trunk/tools/perf/ui/gtk/gtk.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ struct perf_gtk_context *perf_gtk__activate_context(GtkWidget *window);
int perf_gtk__deactivate_context(struct perf_gtk_context **ctx);

void perf_gtk__init_helpline(void);
void perf_gtk__init_progress(void);
void perf_gtk__init_hpp(void);

#ifndef HAVE_GTK_INFO_BAR
Expand Down
50 changes: 50 additions & 0 deletions trunk/tools/perf/ui/gtk/progress.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#include <inttypes.h>

#include "gtk.h"
#include "../progress.h"
#include "util.h"

static GtkWidget *dialog;
static GtkWidget *progress;

static void gtk_progress_update(u64 curr, u64 total, const char *title)
{
double fraction = total ? 1.0 * curr / total : 0.0;
char buf[1024];

if (dialog == NULL) {
GtkWidget *vbox = gtk_vbox_new(TRUE, 5);
GtkWidget *label = gtk_label_new(title);

dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL);
progress = gtk_progress_bar_new();

gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, FALSE, 3);
gtk_box_pack_start(GTK_BOX(vbox), progress, TRUE, TRUE, 3);

gtk_container_add(GTK_CONTAINER(dialog), vbox);

gtk_window_set_title(GTK_WINDOW(dialog), "perf");
gtk_window_resize(GTK_WINDOW(dialog), 300, 80);
gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);

gtk_widget_show_all(dialog);
}

gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress), fraction);
snprintf(buf, sizeof(buf), "%"PRIu64" / %"PRIu64, curr, total);
gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progress), buf);

/* we didn't call gtk_main yet, so do it manually */
while (gtk_events_pending())
gtk_main_iteration();
}

static struct ui_progress gtk_progress_fns = {
.update = gtk_progress_update,
};

void perf_gtk__init_progress(void)
{
progress_fns = &gtk_progress_fns;
}
2 changes: 2 additions & 0 deletions trunk/tools/perf/ui/gtk/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ int perf_gtk__init(void)
{
perf_error__register(&perf_gtk_eops);
perf_gtk__init_helpline();
perf_gtk__init_progress();
perf_gtk__init_hpp();

return gtk_init_check(NULL, NULL) ? 0 : -1;
}

Expand Down

0 comments on commit ec09f67

Please sign in to comment.