diff options
Diffstat (limited to 'src/gtkext/gtkgraphview.c')
-rw-r--r-- | src/gtkext/gtkgraphview.c | 65 |
1 files changed, 23 insertions, 42 deletions
diff --git a/src/gtkext/gtkgraphview.c b/src/gtkext/gtkgraphview.c index 3c117d9..ebff35c 100644 --- a/src/gtkext/gtkgraphview.c +++ b/src/gtkext/gtkgraphview.c @@ -40,7 +40,7 @@ struct _GtkGraphView { GtkViewPanel parent; /* A laisser en premier */ - GtkFixed *support; /* Support des vues en bloc */ + GtkWidget *support; /* Support des vues en bloc */ GBinRoutine *routine; /* Routine en cours d'affichage*/ vmpa_t start; /* Début de la portion vue */ /* FIXME : à garder ? */ @@ -53,9 +53,6 @@ struct _GtkGraphView GGraphLayout *layout; /* Disposition en graphique */ - GtkLinkRenderer **links; /* Liste des liens graphiques */ - size_t links_count; /* Nombre de ces liens */ - }; /* Composant d'affichage sous forme graphique (classe) */ @@ -126,10 +123,8 @@ G_DEFINE_TYPE(GtkGraphView, gtk_graph_view, GTK_TYPE_VIEW_PANEL) static void gtk_graph_view_class_init(GtkGraphViewClass *class) { - GtkWidgetClass *widget_class; /* Classe version Widget */ GtkViewPanelClass *panel_class; /* Classe parente */ - widget_class = GTK_WIDGET_CLASS(class); panel_class = GTK_VIEW_PANEL_CLASS(class); panel_class->compute_size = (compute_requested_size_fc)gtk_graph_view_compute_requested_size; @@ -169,16 +164,16 @@ static void gtk_graph_view_init(GtkGraphView *view) //binview->define_address = (define_main_address_fc)gtk_graph_view_define_main_address; //binview->get_coordinates = (get_addr_coordinates_fc)gtk_graph_view_get_address_coordinates; - view->support = GTK_FIXED(gtk_fixed_new()); - gtk_widget_set_has_window(GTK_WIDGET(view->support), TRUE); - gtk_widget_set_can_focus(GTK_WIDGET(view->support), TRUE); + view->support = gtk_fixed_new(); + gtk_widget_set_has_window(view->support, TRUE); + gtk_widget_set_can_focus(view->support, TRUE); g_signal_connect(G_OBJECT(view->support), "draw", G_CALLBACK(gtk_graph_view_draw), view); - gtk_widget_show(GTK_WIDGET(view->support)); + gtk_widget_show(view->support); - gtk_fixed_put(GTK_FIXED(view), GTK_WIDGET(view->support), 0, 0); + gtk_fixed_put(GTK_FIXED(view), view->support, 0, 0); //view->mutex = g_mutex_new(); //view->cond = g_cond_new(); @@ -242,7 +237,7 @@ static void gtk_graph_view_adjust_scroll_value(GtkGraphView *view, GtkAdjustment fake_y = 0; gtk_view_panel_compute_fake_coord(GTK_VIEW_PANEL(view), &fake_x, &fake_y); - gtk_fixed_move(GTK_FIXED(view), GTK_WIDGET(view->support), fake_x, -fake_y); + gtk_fixed_move(GTK_FIXED(view), view->support, fake_x, -fake_y); } @@ -498,7 +493,7 @@ void gtk_graph_view_put(GtkGraphView *view, GtkWidget *widget, const GtkAllocati gtk_container_remove(GTK_CONTAINER(parent), widget); } - gtk_fixed_put(view->support, widget, alloc->x, alloc->y); + gtk_fixed_put(GTK_FIXED(view->support), widget, alloc->x, alloc->y); if (parent != NULL) g_object_unref(G_OBJECT(widget)); @@ -508,28 +503,6 @@ void gtk_graph_view_put(GtkGraphView *view, GtkWidget *widget, const GtkAllocati /****************************************************************************** * * -* Paramètres : view = composant GTK à mettre à jour. * -* links = liens graphiques entre les blocs à intégrer. * -* count = quantité de ces liens graphiques. * -* * -* Description : Définit les liens graphiques à présenter avec la vue. * -* * -* Retour : - * -* * -* Remarques : - * -* * -******************************************************************************/ - -void gtk_graph_view_attach_links(GtkGraphView *view, GtkLinkRenderer **links, size_t count) -{ - view->links = links; - view->links_count = count; - -} - - -/****************************************************************************** -* * * Paramètres : view = instance GTK à réinitialiser. * * * * Description : Supprime tout contenu de l'afficheur de code en graphique. * @@ -599,7 +572,7 @@ static void gtk_graph_view_reset(GtkGraphView *view) static GtkBufferView **gtk_graph_view_load_nodes(GtkGraphView *view, GLoadedBinary *binary, const GBinRoutine *routine) { - GtkViewPanel **result; /* Liste à retourner */ + GtkBufferView **result; /* Liste à retourner */ GCodeBuffer *buffer; /* Tampon brut à découper */ size_t *count; /* Nombre d'éléments créés. */ GInstrBlock *main_block; /* Premier bloc rattaché */ @@ -619,24 +592,24 @@ static GtkBufferView **gtk_graph_view_load_nodes(GtkGraphView *view, GLoadedBina *count = 0; g_instr_block_list_all_blocks(main_block, &blocks, count); - result = (GtkViewPanel **)calloc(*count, sizeof(GtkViewPanel *)); + result = (GtkBufferView **)calloc(*count, sizeof(GtkBufferView *)); for (i = 0; i < *count; i++) { - result[i] = GTK_VIEW_PANEL(gtk_block_view_new()); + result[i] = GTK_BUFFER_VIEW(gtk_block_view_new()); g_signal_connect(result[i], "reach-limit", G_CALLBACK(gtk_graph_view_reach_caret_limit), view); g_signal_connect(result[i], "highlight-changed", G_CALLBACK(gtk_graph_view_changed_highlights), view); gtk_widget_show(GTK_WIDGET(result[i])); - gtk_view_panel_attach_binary(result[i], binary, BVW_BLOCK); + gtk_view_panel_attach_binary(GTK_VIEW_PANEL(result[i]), binary, BVW_BLOCK); - gtk_view_panel_show_border(result[i], true); + gtk_view_panel_show_border(GTK_VIEW_PANEL(result[i]), true); g_flow_block_get_boundary_addresses(G_FLOW_BLOCK(blocks[i]), &first, &last); subview = g_buffer_view_new(buffer, view->highlighted); g_buffer_view_restrict(subview, &first, &last); - gtk_buffer_view_attach_buffer(GTK_BUFFER_VIEW(result[i]), subview); + gtk_buffer_view_attach_buffer(result[i], subview); } @@ -664,7 +637,7 @@ static void gtk_graph_view_changed_highlights(GtkBlockView *node, GtkGraphView * for (i = 0; i < view->children_count; i++) { - if (view->children[i] == node) + if (view->children[i] == GTK_BUFFER_VIEW(node)) continue; gtk_widget_queue_draw(GTK_WIDGET(view->children[i])); @@ -763,6 +736,10 @@ static void gtk_graph_view_reach_caret_limit(GtkBufferView *node, GdkScrollDirec break; + case GDK_SCROLL_SMOOTH: + assert(0); /* Argument jamais généré */ + break; + } g_object_unref(G_OBJECT(proc)); @@ -817,6 +794,10 @@ static void gtk_graph_view_reach_caret_limit(GtkBufferView *node, GdkScrollDirec case GDK_SCROLL_DOWN: break; + case GDK_SCROLL_SMOOTH: + assert(0); /* Argument jamais généré */ + break; + } /* TODO : scrolling... */ |