Code

Merge and cleanup of GSoC C++-ification project.
[inkscape.git] / src / svg-view.cpp
index 22d9dd120e81d0cd4e477add44a77bf36066ac95..ef87b38efecbf8dd5fac4887b7252091d6c81661 100644 (file)
@@ -1,11 +1,11 @@
-#define __SP_SVG_VIEW_C__
-
 /** \file
  * Functions and callbacks for generic SVG view and widget
  *
  * Authors:
  *   Lauris Kaplinski <lauris@kaplinski.com>
  *   Ralf Stephan <ralf@ark.in-berlin.de>
+ *   Jon A. Cruz <jon@joncruz.org>
+ *   Abhishek Sharma
  *
  * Copyright (C) 2001-2002 Lauris Kaplinski
  * Copyright (C) 2001 Ximian, Inc.
@@ -41,7 +41,7 @@ SPSVGView::~SPSVGView()
 {
     if (doc() && _drawing)
     {
-        sp_item_invoke_hide (SP_ITEM (sp_document_root (doc())), _dkey);
+        SP_ITEM( doc()->getRoot() )->invoke_hide(_dkey);
         _drawing = NULL;
     }
 }
@@ -84,12 +84,12 @@ void
 SPSVGView::doRescale (bool event)
 {
     if (!doc()) return;
-    if (sp_document_width (doc()) < 1e-9) return;
-    if (sp_document_height (doc()) < 1e-9) return;
+    if (doc()->getWidth () < 1e-9) return;
+    if (doc()->getHeight () < 1e-9) return;
 
     if (_rescale) {
-        _hscale = _width / sp_document_width (doc());
-        _vscale = _height / sp_document_height (doc());
+        _hscale = _width / doc()->getWidth ();
+        _vscale = _height / doc()->getHeight ();
         if (_keepaspect) {
             if (_hscale > _vscale) {
                 _hscale = _vscale;
@@ -100,12 +100,12 @@ SPSVGView::doRescale (bool event)
     }
 
     if (_drawing) {
-        sp_canvas_item_affine_absolute (_drawing, NR::Matrix(NR::scale(_hscale, _vscale)));
+        sp_canvas_item_affine_absolute (_drawing, Geom::Scale(_hscale, _vscale));
     }
 
     if (event) {
-        emitResized (sp_document_width (doc()) * _hscale,
-                sp_document_height (doc()) * _vscale);
+        emitResized (doc()->getWidth () * _hscale,
+                doc()->getHeight () * _vscale);
     }
 }
 
@@ -114,7 +114,7 @@ SPSVGView::mouseover()
 {
     GdkCursor *cursor = gdk_cursor_new(GDK_HAND2);
     gdk_window_set_cursor(GTK_WIDGET(SP_CANVAS_ITEM(_drawing)->canvas)->window, cursor);
-    gdk_cursor_destroy(cursor);
+    gdk_cursor_unref(cursor);
 }
 
 void
@@ -129,7 +129,7 @@ SPSVGView::mouseout()
  */
 /// \todo fixme.
 static gint
-arena_handler (SPCanvasArena *arena, NRArenaItem *ai, GdkEvent *event, SPSVGView *svgview)
+arena_handler (SPCanvasArena */*arena*/, NRArenaItem *ai, GdkEvent *event, SPSVGView *svgview)
 {
        static gdouble x, y;
        static gboolean active = FALSE;
@@ -152,7 +152,7 @@ arena_handler (SPCanvasArena *arena, NRArenaItem *ai, GdkEvent *event, SPSVGView
                                spev.type = SP_EVENT_ACTIVATE;
                                 if ( spitem != 0 )
                                {
-                                 sp_item_event (spitem, &spev);
+                                 spitem->emitEvent (spev);
                                 }
                        }
                }
@@ -166,7 +166,7 @@ arena_handler (SPCanvasArena *arena, NRArenaItem *ai, GdkEvent *event, SPSVGView
                spev.data = svgview;
                 if ( spitem != 0 )
                {
-                 sp_item_event (spitem, &spev);
+                 spitem->emitEvent (spev);
                 }
                break;
        case GDK_LEAVE_NOTIFY:
@@ -174,7 +174,7 @@ arena_handler (SPCanvasArena *arena, NRArenaItem *ai, GdkEvent *event, SPSVGView
                spev.data = svgview;
                 if ( spitem != 0 )
                {
-                 sp_item_event (spitem, &spev);
+                 spitem->emitEvent (spev);
                 }
                break;
        default:
@@ -191,7 +191,7 @@ void
 SPSVGView::setDocument (SPDocument *document)
 {
     if (doc()) {
-        sp_item_invoke_hide (SP_ITEM (sp_document_root (doc())), _dkey);
+        SP_ITEM( doc()->getRoot() )->invoke_hide(_dkey);
     }
 
     if (!_drawing) {
@@ -200,15 +200,13 @@ SPSVGView::setDocument (SPDocument *document)
     }
 
     if (document) {
-        NRArenaItem *ai = sp_item_invoke_show (
-                SP_ITEM (sp_document_root (document)),
+        NRArenaItem *ai = SP_ITEM( document->getRoot() )->invoke_show(
                 SP_CANVAS_ARENA (_drawing)->arena,
                 _dkey,
                 SP_ITEM_SHOW_DISPLAY);
 
         if (ai) {
             nr_arena_item_add_child (SP_CANVAS_ARENA (_drawing)->root, ai, NULL);
-            nr_arena_item_unref (ai);
         }
 
         doRescale (!_rescale);