GtkWidget *CF_Viewer;
GtkWidget *VBox_V;
GtkWidget *HScroll_VC;
- ControlFlowData *Control_Flow_Data;
+ ControlFlowData *control_flow_data;
guint ev_sel = 444 ;
/* Horizontal scrollbar and it's adjustment */
GtkWidget *VScroll_VC;
- GtkAdjustment *VAdjust_C ;
+ GtkAdjustment *v_adjust ;
/* Initialize i18n support */
gtk_set_locale ();
//ListViewer = hGuiEvents(Window);
//gtk_box_pack_start(GTK_BOX(VBox_V), ListViewer, FALSE, TRUE, 0);
- Control_Flow_Data = guicontrolflow();
- CF_Viewer = Control_Flow_Data->Scrolled_Window_VC;
+ control_flow_data = guicontrolflow();
+ CF_Viewer = control_flow_data->scrolled_window;
gtk_box_pack_start(GTK_BOX(VBox_V), CF_Viewer, TRUE, TRUE, 0);
/* Create horizontal scrollbar and pack it */
gtk_widget_show (VBox_V);
gtk_widget_show (Window);
- //Event_Selected_Hook(Control_Flow_Data, &ev_sel);
+ //Event_Selected_Hook(control_flow_data, &ev_sel);
gtk_main ();
-void add_test_process(ControlFlowData *Control_Flow_Data)
+void add_test_process(ControlFlowData *control_flow_data)
{
GtkTreeIter iter;
int i;
gchar *process[] = { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" };
- for(i=0; i<Control_Flow_Data->Number_Of_Process; i++)
+ for(i=0; i<control_flow_data->number_of_process; i++)
{
/* Add a new row to the model */
- gtk_list_store_append (Control_Flow_Data->Store_M, &iter);
- gtk_list_store_set ( Control_Flow_Data->Store_M, &iter,
+ gtk_list_store_append (control_flow_data->list_store, &iter);
+ gtk_list_store_set ( control_flow_data->list_store, &iter,
PROCESS_COLUMN, process[i],
-1);
}
-void test_draw(ControlFlowData *Control_Flow_Data)
+void test_draw(ControlFlowData *control_flow_data)
{
/* Draw event states using available height, Number of process, cell height
* (don't forget to remove two pixels at beginning and end).
* This function calls the reading library to get the draw_hook called
* for the desired period of time. */
- DrawingAreaInfo *Drawing_Area_Info = &Control_Flow_Data->Drawing_Area_Info;
+ DrawingAreaInfo *Drawing_Area_Info = &control_flow_data->Drawing_Area_Info;
}
#ifdef DEBUG
void test_draw() {
- gint cell_height = get_cell_height(GTK_TREE_VIEW(Control_Flow_Data->Process_List_VC));
+ gint cell_height = get_cell_height(GTK_TREE_VIEW(control_flow_data->process_list_widget));
GdkGC *GC = gdk_gc_new(widget->window);
GdkColor color = CF_Colors[GREEN];
/* When redrawing, use widget->allocation.width to get the width of
* drawable area. */
- Control_Flow_Data->Drawing_Area_Info.width = widget->allocation.width;
+ control_flow_data->Drawing_Area_Info.width = widget->allocation.width;
- test_draw(Control_Flow_Data);
+ test_draw(control_flow_data);
gdk_gc_copy(GC,widget->style->white_gc);
gdk_gc_set_foreground(GC,&color);
// TRUE,
// //0, 0, widget->allocation.width, widget->allocation.height,
// 0, 0, widget->allocation.width,
- // Control_Flow_Data->Drawing_Area_Info.height,
+ // control_flow_data->Drawing_Area_Info.height,
// 0, 64 * 360);
- //Drawing_Area_Init(Control_Flow_Data);
+ //Drawing_Area_Init(control_flow_data);
// 2 pixels for the box around the drawing area, 1 pixel for off-by-one
// (starting from 0)
}
#endif //DEBUG
+
+/* Event_Hook.c tests */
+
+void test_draw_item(Drawing_t *Drawing,
+ GdkPixmap *pixmap)
+{
+ PropertiesIcon properties_icon;
+ DrawContext draw_context;
+
+ DrawInfo current, previous;
+ ItemInfo over, middle, under, modify_over, modify_middle, modify_under;
+
+ int i=0,j=0;
+
+ //for(i=0; i<1024;i=i+15)
+ {
+ // for(j=0;j<768;j=j+15)
+ {
+ over.x = i;
+ over.y = j;
+
+ current.modify_over = &over;
+
+ draw_context.drawable = pixmap;
+ draw_context.gc = Drawing->drawing_area->style->black_gc;
+
+ draw_context.current = ¤t;
+ draw_context.previous = NULL;
+
+ properties_icon.icon_name = g_new(char, MAX_PATH_LEN);
+ strncpy(properties_icon.icon_name,
+ "/home/compudj/local/share/LinuxTraceToolkit/pixmaps/mini-display.xpm",
+ MAX_PATH_LEN);
+ properties_icon.width = -1;
+ properties_icon.height = -1;
+ properties_icon.position = OVER;
+ draw_icon(&properties_icon, &draw_context);
+ g_free(properties_icon.icon_name);
+ }
+ }
+
+}
+
+#ifdef NOTUSE
+/* NOTE : no drawing data should be sent there, since the drawing widget
+ * has not been initialized */
+void send_test_drawing(ProcessList *process_list,
+ Drawing_t *Drawing,
+ GdkPixmap *pixmap,
+ gint x, gint y, // y not used here?
+ gint width,
+ gint height) // height won't be used here ?
+{
+ int i,j;
+ ProcessInfo Process_Info = {10000, 12000, 55600};
+ //ProcessInfo Process_Info = {156, 14000, 55500};
+ GtkTreeRowReference *row_ref;
+ PangoContext *context;
+ PangoLayout *layout;
+ PangoFontDescription *FontDesc;// = pango_font_description_new();
+ gint Font_Size;
+
+ //icon
+ //GdkBitmap *mask = g_new(GdkBitmap, 1);
+ //GdkPixmap *icon_pixmap = g_new(GdkPixmap, 1);
+ GdkGC * gc;
+ // rectangle
+ GdkColor color = { 0, 0xffff, 0x0000, 0x0000 };
+
+ gc = gdk_gc_new(pixmap);
+ /* Sent text data */
+ layout = gtk_widget_create_pango_layout(Drawing->drawing_area,
+ NULL);
+ context = pango_layout_get_context(layout);
+ FontDesc = pango_context_get_font_description(context);
+ Font_Size = pango_font_description_get_size(FontDesc);
+ pango_font_description_set_size(FontDesc, Font_Size-3*PANGO_SCALE);
+
+
+
+
+ LttTime birth;
+ birth.tv_sec = 12000;
+ birth.tv_nsec = 55500;
+ g_info("we have : x : %u, y : %u, width : %u, height : %u", x, y, width, height);
+ processlist_get_process_pixels(process_list,
+ 1,
+ &birth,
+ &y,
+ &height);
+
+ g_info("we draw : x : %u, y : %u, width : %u, height : %u", x, y, width, height);
+ drawing_draw_line(
+ Drawing, pixmap, x,
+ y+(height/2), x + width, y+(height/2),
+ Drawing->drawing_area->style->black_gc);
+
+ pango_layout_set_text(layout, "Test", -1);
+ gdk_draw_layout(pixmap, Drawing->drawing_area->style->black_gc,
+ 0, y+height, layout);
+
+ birth.tv_sec = 14000;
+ birth.tv_nsec = 55500;
+
+ processlist_get_process_pixels(process_list,
+ 156,
+ &birth,
+ &y,
+ &height);
+
+
+ drawing_draw_line(
+ Drawing, pixmap, x,
+ y+(height/2), x + width, y+(height/2),
+ Drawing->drawing_area->style->black_gc);
+
+ g_info("y : %u, height : %u", y, height);
+
+
+
+ birth.tv_sec = 12000;
+ birth.tv_nsec = 55700;
+
+ processlist_get_process_pixels(process_list,
+ 10,
+ &birth,
+ &y,
+ &height);
+
+ /* Draw rectangle (background color) */
+ gdk_gc_copy(gc, Drawing->drawing_area->style->black_gc);
+ gdk_gc_set_rgb_fg_color(gc, &color);
+ gdk_draw_rectangle(pixmap, gc,
+ TRUE,
+ x, y, width, height);
+
+ drawing_draw_line(
+ Drawing, pixmap, x,
+ y+(height/2), x + width, y+(height/2),
+ Drawing->drawing_area->style->black_gc);
+
+
+ /* Draw arc */
+ gdk_draw_arc(pixmap, Drawing->drawing_area->style->black_gc,
+ TRUE, 100, y, height/2, height/2, 0, 360*64);
+
+ g_info("y : %u, height : %u", y, height);
+
+ for(i=0; i<10; i++)
+ {
+ birth.tv_sec = i*12000;
+ birth.tv_nsec = i*55700;
+
+ processlist_get_process_pixels(process_list,
+ i,
+ &birth,
+ &y,
+ &height);
+
+
+ drawing_draw_line(
+ Drawing, pixmap, x,
+ y+(height/2), x + width, y+(height/2),
+ Drawing->drawing_area->style->black_gc);
+
+ g_critical("y : %u, height : %u", y, height);
+
+ }
+
+ birth.tv_sec = 12000;
+ birth.tv_nsec = 55600;
+
+ processlist_get_process_pixels(process_list,
+ 10,
+ &birth,
+ &y,
+ &height);
+
+
+ drawing_draw_line(
+ Drawing, pixmap, x,
+ y+(height/2), x + width, y+(height/2),
+ Drawing->drawing_area->style->black_gc);
+
+ g_info("y : %u, height : %u", y, height);
+
+
+ /* IMPORTANT : This action uses the cpu heavily! */
+ //icon_pixmap = gdk_pixmap_create_from_xpm(pixmap, &mask, NULL,
+// "/home/compudj/local/share/LinuxTraceToolkit/pixmaps/move_message.xpm");
+ // "/home/compudj/local/share/LinuxTraceToolkit/pixmaps/mini-display.xpm");
+
+ // gdk_gc_set_clip_mask(Drawing->drawing_area->style->black_gc, mask);
+
+// for(i=x;i<x+width;i=i+15)
+// {
+// for(j=0;j<height*20;j=j+15)
+// {
+
+ /* Draw icon */
+ //gdk_gc_copy(gc, Drawing->drawing_area->style->black_gc);
+// gdk_gc_set_clip_origin(Drawing->drawing_area->style->black_gc, i, j);
+// gdk_draw_drawable(pixmap,
+// Drawing->drawing_area->style->black_gc,
+// icon_pixmap,
+// 0, 0, i, j, -1, -1);
+
+// }
+// }
+
+ test_draw_item(Drawing,pixmap);
+
+ //gdk_gc_set_clip_origin(Drawing->drawing_area->style->black_gc, 0, 0);
+ //gdk_gc_set_clip_mask(Drawing->drawing_area->style->black_gc, NULL);
+
+ //g_free(icon_pixmap);
+ //g_free(mask);
+
+
+
+
+
+
+ pango_font_description_set_size(FontDesc, Font_Size);
+ g_object_unref(layout);
+ g_free(gc);
+}
+
+void send_test_process(ProcessList *process_list, Drawing_t *Drawing)
+{
+ guint height, y;
+ int i;
+ ProcessInfo Process_Info = {10000, 12000, 55600};
+ //ProcessInfo Process_Info = {156, 14000, 55500};
+ GtkTreeRowReference *row_ref;
+
+ LttTime birth;
+
+ if(process_list->Test_Process_Sent) return;
+
+ birth.tv_sec = 12000;
+ birth.tv_nsec = 55500;
+
+ processlist_add(process_list,
+ 1,
+ &birth,
+ &y);
+ processlist_get_process_pixels(process_list,
+ 1,
+ &birth,
+ &y,
+ &height);
+ drawing_insert_square( Drawing, y, height);
+
+ //g_critical("y : %u, height : %u", y, height);
+
+ birth.tv_sec = 14000;
+ birth.tv_nsec = 55500;
+
+ processlist_add(process_list,
+ 156,
+ &birth,
+ &y);
+ processlist_get_process_pixels(process_list,
+ 156,
+ &birth,
+ &y,
+ &height);
+ drawing_insert_square( Drawing, y, height);
+
+ //g_critical("y : %u, height : %u", y, height);
+
+ birth.tv_sec = 12000;
+ birth.tv_nsec = 55700;
+
+ processlist_add(process_list,
+ 10,
+ &birth,
+ &height);
+ processlist_get_process_pixels(process_list,
+ 10,
+ &birth,
+ &y,
+ &height);
+ drawing_insert_square( Drawing, y, height);
+
+ //g_critical("y : %u, height : %u", y, height);
+
+ //drawing_insert_square( Drawing, height, 5);
+
+ for(i=0; i<10; i++)
+ {
+ birth.tv_sec = i*12000;
+ birth.tv_nsec = i*55700;
+
+ processlist_add(process_list,
+ i,
+ &birth,
+ &height);
+ processlist_get_process_pixels(process_list,
+ i,
+ &birth,
+ &y,
+ &height);
+ drawing_insert_square( Drawing, y, height);
+
+ // g_critical("y : %u, height : %u", y, height);
+
+ }
+ //g_critical("height : %u", height);
+
+ birth.tv_sec = 12000;
+ birth.tv_nsec = 55600;
+
+ processlist_add(process_list,
+ 10,
+ &birth,
+ &y);
+ processlist_get_process_pixels(process_list,
+ 10,
+ &birth,
+ &y,
+ &height);
+ drawing_insert_square( Drawing, y, height);
+
+ //g_critical("y : %u, height : %u", y, height);
+
+ processlist_add(process_list,
+ 10000,
+ &birth,
+ &height);
+ processlist_get_process_pixels(process_list,
+ 10000,
+ &birth,
+ &y,
+ &height);
+ drawing_insert_square( Drawing, y, height);
+
+ //g_critical("y : %u, height : %u", y, height);
+
+ //drawing_insert_square( Drawing, height, 5);
+ //g_critical("height : %u", height);
+
+
+ processlist_get_process_pixels(process_list,
+ 10000,
+ &birth,
+ &y, &height);
+ processlist_remove( process_list,
+ 10000,
+ &birth);
+
+ drawing_remove_square( Drawing, y, height);
+
+ if(row_ref =
+ (GtkTreeRowReference*)g_hash_table_lookup(
+ process_list->process_hash,
+ &Process_Info))
+ {
+ g_critical("key found");
+ g_critical("position in the list : %s",
+ gtk_tree_path_to_string (
+ gtk_tree_row_reference_get_path(
+ (GtkTreeRowReference*)row_ref)
+ ));
+
+ }
+
+ process_list->Test_Process_Sent = TRUE;
+
+}
+#endif//NOTUSE
+