Show multiple annotation result for each evsel. Each result represents the most frquently sampled symbol/function for the evsel and it will be shown in a tab window. For this add a reference to main container (notebook) to the pgctx. At the first call to annotate browser, hist_entry__find_annotations() will setup a new browser, and next calls will add new tabs to the browser. But it requires final perf_gtk__show_annotations() to start processing GUI events. Signed-off-by: Namhyung Kim <namhyung@kernel.org> Cc: Andi Kleen <andi@firstfloor.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Pekka Enberg <penberg@kernel.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1360227734-375-3-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef _PERF_GTK_H_
 | 
						|
#define _PERF_GTK_H_ 1
 | 
						|
 | 
						|
#include <stdbool.h>
 | 
						|
 | 
						|
#pragma GCC diagnostic ignored "-Wstrict-prototypes"
 | 
						|
#include <gtk/gtk.h>
 | 
						|
#pragma GCC diagnostic error "-Wstrict-prototypes"
 | 
						|
 | 
						|
 | 
						|
struct perf_gtk_context {
 | 
						|
	GtkWidget *main_window;
 | 
						|
	GtkWidget *notebook;
 | 
						|
 | 
						|
#ifdef HAVE_GTK_INFO_BAR
 | 
						|
	GtkWidget *info_bar;
 | 
						|
	GtkWidget *message_label;
 | 
						|
#endif
 | 
						|
	GtkWidget *statbar;
 | 
						|
	guint statbar_ctx_id;
 | 
						|
};
 | 
						|
 | 
						|
extern struct perf_gtk_context *pgctx;
 | 
						|
 | 
						|
static inline bool perf_gtk__is_active_context(struct perf_gtk_context *ctx)
 | 
						|
{
 | 
						|
	return ctx && ctx->main_window;
 | 
						|
}
 | 
						|
 | 
						|
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);
 | 
						|
 | 
						|
void perf_gtk__signal(int sig);
 | 
						|
void perf_gtk__resize_window(GtkWidget *window);
 | 
						|
const char *perf_gtk__get_percent_color(double percent);
 | 
						|
GtkWidget *perf_gtk__setup_statusbar(void);
 | 
						|
 | 
						|
#ifdef HAVE_GTK_INFO_BAR
 | 
						|
GtkWidget *perf_gtk__setup_info_bar(void);
 | 
						|
#else
 | 
						|
static inline GtkWidget *perf_gtk__setup_info_bar(void)
 | 
						|
{
 | 
						|
	return NULL;
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif /* _PERF_GTK_H_ */
 |