diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2010-10-24 12:58:53 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2010-10-24 12:58:53 (GMT) |
commit | 6ab5a66388182e6cb9a49b8d6e54a9348de4f264 (patch) | |
tree | 5dfdd4d9125423226cd44cc6e6c18502f362fbd2 /src/gtkext/gtkblockview.c | |
parent | 7e53295ae7e67c8473aca2974e519aa0a593788e (diff) |
Introduced new views for rendering source code.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@184 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/gtkext/gtkblockview.c')
-rw-r--r-- | src/gtkext/gtkblockview.c | 80 |
1 files changed, 41 insertions, 39 deletions
diff --git a/src/gtkext/gtkblockview.c b/src/gtkext/gtkblockview.c index a19c17a..66177b8 100644 --- a/src/gtkext/gtkblockview.c +++ b/src/gtkext/gtkblockview.c @@ -501,18 +501,20 @@ static void gtk_block_view_class_init(GtkBlockViewClass *klass) static void gtk_block_view_init(GtkBlockView *view) { - GtkBinView *binview; /* Instance parente */ + GtkViewPanel *viewpanel; /* Instance parente #1 */ + GtkBinView *binview; /* Instance parente #2 */ + + viewpanel = GTK_VIEW_PANEL(view); + + viewpanel->scroll = (scroll_fc)gtk_block_view_scroll; binview = GTK_BIN_VIEW(view); - binview->scroll = (scroll_fc)gtk_block_view_scroll; binview->set_lines = (set_rendering_lines_fc)gtk_block_view_set_rendering_lines; binview->get_coordinates = (get_addr_coordinates_fc)gtk_block_view_get_address_coordinates; - view->_buffer = g_code_buffer_new(); - } @@ -578,7 +580,7 @@ static void gtk_block_view_size_request(GtkWidget *widget, GtkRequisition *requi static void gtk_block_view_size_allocate(GtkWidget *widget, GtkAllocation *allocation) { - GtkBinView *view; /* Autre version du composant */ + GtkViewPanel *panel; /* Autre version du composant */ gint width; /* Largeur de l'objet actuelle */ gint height; /* Hauteur de l'objet actuelle */ GtkAllocation valloc; /* Surface utilisable */ @@ -593,44 +595,44 @@ static void gtk_block_view_size_allocate(GtkWidget *widget, GtkAllocation *alloc allocation->x, allocation->y, allocation->width, allocation->height); - view = GTK_BIN_VIEW(widget); + panel = GTK_VIEW_PANEL(widget); - if (view->hadjustment == NULL || view->vadjustment == NULL) + if (panel->hadjustment == NULL || panel->vadjustment == NULL) return; - g_buffer_view_get_size(GTK_BLOCK_VIEW(view)->buffer_view, &width, &height); + g_buffer_view_get_size(GTK_BLOCK_VIEW(widget)->buffer_view, &width, &height); - gtk_bin_view_compute_allocation(view, &valloc); + gtk_view_panel_compute_allocation(panel, &valloc); /* Défilement horizontal */ - view->hadjustment->page_size = valloc.width; - view->hadjustment->step_increment = valloc.width * 0.1; - view->hadjustment->page_increment = valloc.width * 0.9; + panel->hadjustment->page_size = valloc.width; + panel->hadjustment->step_increment = valloc.width * 0.1; + panel->hadjustment->page_increment = valloc.width * 0.9; - view->hadjustment->upper = MAX(width, valloc.width); + panel->hadjustment->upper = MAX(width, valloc.width); - gtk_bin_view_reclamp_adjustment(view->hadjustment, &changed); + gtk_view_panel_reclamp_adjustment(panel->hadjustment, &changed); - gtk_adjustment_changed(view->hadjustment); + gtk_adjustment_changed(panel->hadjustment); if (changed) - gtk_adjustment_value_changed(view->hadjustment); + gtk_adjustment_value_changed(panel->hadjustment); /* Défilement vertical */ - view->vadjustment->page_size = valloc.height; - view->vadjustment->step_increment = GTK_BLOCK_VIEW(view)->line_height; - view->vadjustment->page_increment = view->vadjustment->step_increment * 10.0; + panel->vadjustment->page_size = valloc.height; + panel->vadjustment->step_increment = GTK_BLOCK_VIEW(widget)->line_height; + panel->vadjustment->page_increment = panel->vadjustment->step_increment * 10.0; - view->vadjustment->upper = MAX(height, valloc.height); + panel->vadjustment->upper = MAX(height, valloc.height); - gtk_bin_view_reclamp_adjustment(view->vadjustment, &changed); + gtk_view_panel_reclamp_adjustment(panel->vadjustment, &changed); - gtk_adjustment_changed(view->vadjustment); + gtk_adjustment_changed(panel->vadjustment); if (changed) - gtk_adjustment_value_changed(view->vadjustment); + gtk_adjustment_value_changed(panel->vadjustment); } @@ -723,11 +725,11 @@ void gtk_block_view_update_margin(GRenderingLine *line, GtkBlockView *view) static void gtk_block_view_compute_fake_coord(GtkBlockView *view, gint *x, gint *y) { - if (GTK_BIN_VIEW(view)->hadjustment != NULL) - *x -= gtk_adjustment_get_value(GTK_BIN_VIEW(view)->hadjustment); + if (GTK_VIEW_PANEL(view)->hadjustment != NULL) + *x -= gtk_adjustment_get_value(GTK_VIEW_PANEL(view)->hadjustment); - if (GTK_BIN_VIEW(view)->vadjustment != NULL) - *y += gtk_adjustment_get_value(GTK_BIN_VIEW(view)->vadjustment); + if (GTK_VIEW_PANEL(view)->vadjustment != NULL) + *y += gtk_adjustment_get_value(GTK_VIEW_PANEL(view)->vadjustment); } @@ -747,11 +749,11 @@ static void gtk_block_view_compute_fake_coord(GtkBlockView *view, gint *x, gint static void gtk_block_view_compute_real_coord(GtkBlockView *view, gint *x, gint *y) { - if (x != NULL && GTK_BIN_VIEW(view)->hadjustment != NULL) - *x += gtk_adjustment_get_value(GTK_BIN_VIEW(view)->hadjustment); + if (x != NULL && GTK_VIEW_PANEL(view)->hadjustment != NULL) + *x += gtk_adjustment_get_value(GTK_VIEW_PANEL(view)->hadjustment); - if (y != NULL && GTK_BIN_VIEW(view)->vadjustment != NULL) - *y += gtk_adjustment_get_value(GTK_BIN_VIEW(view)->vadjustment); + if (y != NULL && GTK_VIEW_PANEL(view)->vadjustment != NULL) + *y += gtk_adjustment_get_value(GTK_VIEW_PANEL(view)->vadjustment); } @@ -840,7 +842,7 @@ static void gtk_block_view_draw_line_extra(GBufferLine *line, GdkDrawable *drawa static gboolean gtk_block_view_expose(GtkWidget *widget, GdkEventExpose *event) { GtkBlockView *view; /* Autre version du composant */ - GtkBinView *bview; /* Autre version du composant */ + GtkViewPanel *pview; /* Autre version du composant */ GtkStyle *style; /* Style associé au composant */ GdkDrawable *drawable; /* Surface de dessin */ gint fake_x; /* Abscisse virtuelle */ @@ -849,13 +851,13 @@ static gboolean gtk_block_view_expose(GtkWidget *widget, GdkEventExpose *event) view = GTK_BLOCK_VIEW(widget); widget = GTK_WIDGET(view); - bview = GTK_BIN_VIEW(widget); + pview = GTK_VIEW_PANEL(widget); drawable = GDK_DRAWABLE(event->window); gdk_window_begin_paint_region(drawable, event->region); - gdk_gc_set_clip_region(bview->gc, event->region); + gdk_gc_set_clip_region(pview->gc, event->region); style = gtk_widget_get_style(GTK_WIDGET(view)); @@ -865,14 +867,14 @@ static gboolean gtk_block_view_expose(GtkWidget *widget, GdkEventExpose *event) /* Dessin de la marge gauche */ - gdk_gc_set_foreground(bview->gc, &style->mid[GTK_WIDGET_STATE(widget)]); + gdk_gc_set_foreground(pview->gc, &style->mid[GTK_WIDGET_STATE(widget)]); - gdk_draw_rectangle(drawable, bview->gc, TRUE, + gdk_draw_rectangle(drawable, pview->gc, TRUE, fake_x, event->area.y, view->left_margin, event->area.y + event->area.height); - gdk_gc_set_foreground(bview->gc, &style->dark[GTK_WIDGET_STATE(widget)]); + gdk_gc_set_foreground(pview->gc, &style->dark[GTK_WIDGET_STATE(widget)]); - gdk_draw_line(drawable, bview->gc, + gdk_draw_line(drawable, pview->gc, fake_x + view->left_margin, event->area.y, fake_x + view->left_margin, event->area.y + event->area.height); @@ -884,7 +886,7 @@ static gboolean gtk_block_view_expose(GtkWidget *widget, GdkEventExpose *event) /* Impression du désassemblage */ - g_buffer_view_draw(view->buffer_view, event, bview->gc, fake_x, fake_y); + g_buffer_view_draw(view->buffer_view, event, pview->gc, fake_x, fake_y); gdk_window_end_paint(drawable); |