diff options
Diffstat (limited to 'dvi/view.cc')
-rwxr-xr-x | dvi/view.cc | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/dvi/view.cc b/dvi/view.cc deleted file mode 100755 index 0f2f4b5..0000000 --- a/dvi/view.cc +++ /dev/null @@ -1,113 +0,0 @@ -#include "view.hh" -#include "dl-dvi-fontdefinition.hh" - -using DviLib::DviPage; -using DviLib::DviFontdefinition; - -View::View (Model *model_arg) -{ - model = model_arg; - - model->add_observer (*this); - - drawing_area = gtk_drawing_area_new (); - gtk_widget_show (drawing_area); - gtk_drawing_area_size (GTK_DRAWING_AREA (drawing_area), - BASE_DPI * PAPER_WIDTH, - BASE_DPI * PAPER_HEIGHT); - gtk_signal_connect (GTK_OBJECT (drawing_area), "realize", - (GtkSignalFunc) on_da_realize, this); - gtk_signal_connect (GTK_OBJECT (drawing_area), "expose_event", - (GtkSignalFunc) on_da_expose, this); -} - -void -View::create_pixmap (void) -{ - pixmap = gdk_pixmap_new(drawing_area->window, - BASE_DPI * PAPER_WIDTH, - BASE_DPI * PAPER_HEIGHT, - -1); -} - -void -View::expose (GdkEventExpose *event) -{ - gdk_draw_pixmap ( - drawing_area->window, - drawing_area->style->fg_gc[GTK_WIDGET_STATE (drawing_area)], - pixmap, - event->area.x, event->area.y, - event->area.x, event->area.y, - event->area.width, event->area.height); -} - -void -View::redraw (void) const -{ - // clear page - gdk_draw_rectangle (pixmap, - drawing_area->style->white_gc, - TRUE, 0, 0, - BASE_DPI * PAPER_WIDTH, - BASE_DPI * PAPER_HEIGHT); - - cout << "width " << BASE_DPI * PAPER_WIDTH << endl; - cout << "height " << BASE_DPI * PAPER_HEIGHT << endl; - - // create a painter - DviPainter *painter = - new DviPainter (pixmap, - drawing_area->style->fg_gc[GTK_WIDGET_STATE - (drawing_area)], - model->get_dvi_file (), - BASE_DPI, - new FontFactory()); - // get page - DviPage *page; - try - { - page = model->get_dvi_file ()->get_page (0); - } - catch (string s) - { - cout << s; - abort (); - } - - // draw it with the painter - page->execute (* painter); - -} - -void -View::notify (void) const -{ - ModelState state = model->get_state (); - - switch (state) { - case HAS_FILE: - redraw (); - break; - - case NO_FILE: - break; - - case ERROR: - break; - } -} - -void -on_da_realize (GtkDrawingArea *da, View *v) -{ - v->create_pixmap (); - v->notify (); -} - -gint -on_da_expose (GtkWidget *widget, GdkEventExpose *event, View *v) -{ - v->expose (event); - return FALSE; -} |