diff options
| author | Alexander Valavanis <valavanisalex@gmail.com> | 2018-11-30 18:49:45 +0000 |
|---|---|---|
| committer | Alexander Valavanis <valavanisalex@gmail.com> | 2018-11-30 18:49:45 +0000 |
| commit | 0a8ee1584a84080037bf9504b13fb49923383348 (patch) | |
| tree | d33fa7fbb48f0c358deb59050b833f2b652b79d9 /src/ui/view | |
| parent | SPButton: GObject style fix (diff) | |
| parent | Start of making View independent of GUI. (diff) | |
| download | inkscape-0a8ee1584a84080037bf9504b13fb49923383348.tar.gz inkscape-0a8ee1584a84080037bf9504b13fb49923383348.zip | |
Merge branch 'master' of gitlab.com:inkscape/inkscape
Diffstat (limited to 'src/ui/view')
| -rw-r--r-- | src/ui/view/README | 19 | ||||
| -rw-r--r-- | src/ui/view/svg-view.cpp | 57 |
2 files changed, 41 insertions, 35 deletions
diff --git a/src/ui/view/README b/src/ui/view/README index dad4e7242..cab0bf6f3 100644 --- a/src/ui/view/README +++ b/src/ui/view/README @@ -5,16 +5,16 @@ View is an abstract base class for all UI document views. Documents can be displayed by more than one window, each having its own view (e.g. zoom level, selection, etc.). -View is the parent class for: +View is the base class for: -* SPDocument +* SPDesktop * SVGView -SPViewWidget is the "parent" for: +SPViewWidget is the base for: * SPDocumentWidget -(It was also parent for SPSVGViewWidget but that has been replaced by +(It was also base for SPSVGViewWidget but that has been replaced by SVGViewWidget which is derived, rather uselessly, from Gtk::Scrollbar). SPViewWidget contains a GtkEventBox and holds a View. @@ -28,9 +28,10 @@ SPDesktopWidget contains a SPCanvas Plus lots of other junk. -SVGViewWidget contains a - GtkScrolledWindow - SPCanvas. +SVGViewWidget is derived from Gtk::Scrollbar. It contains: + SPCanvas + SVGView + To do: @@ -39,3 +40,7 @@ To do: It doesn't use the EventBox of SPViewWidget! * Get rid of SPViewWidget, integrating it directly into a new C++ Desktop widget. + +A DesktopViewWidget should contain: + DesktopView (aka SPDesktop) + SPCanvas diff --git a/src/ui/view/svg-view.cpp b/src/ui/view/svg-view.cpp index 6db3fa2a4..e86228322 100644 --- a/src/ui/view/svg-view.cpp +++ b/src/ui/view/svg-view.cpp @@ -130,11 +130,12 @@ void SVGView::mouseout() gdk_window_set_cursor(window, nullptr); } + //---------------------------------------------------------------- /** * Callback connected with arena_event. */ -/// \todo fixme. +/// \todo fixme. This hasn't worked since at least 0.48. It should result in a cursor change over <a></a> links. static gint arena_handler(SPCanvasArena */*arena*/, Inkscape::DrawingItem *ai, GdkEvent *event, SVGView *svgview) { static gdouble x, y; @@ -144,46 +145,46 @@ static gint arena_handler(SPCanvasArena */*arena*/, Inkscape::DrawingItem *ai, G SPItem *spitem = (ai) ? (static_cast<SPItem*>(ai->data())) : nullptr; switch (event->type) { - case GDK_BUTTON_PRESS: - if (event->button.button == 1) { - active = TRUE; - x = event->button.x; - y = event->button.y; - } - break; - case GDK_BUTTON_RELEASE: - if (event->button.button == 1) { - if (active && (event->button.x == x) && - (event->button.y == y)) { - spev.type = SP_EVENT_ACTIVATE; - if ( spitem != nullptr ) - { - spitem->emitEvent (spev); - } - } + case GDK_BUTTON_PRESS: + if (event->button.button == 1) { + active = TRUE; + x = event->button.x; + y = event->button.y; + } + break; + case GDK_BUTTON_RELEASE: + if (event->button.button == 1) { + if (active && (event->button.x == x) && + (event->button.y == y)) { + spev.type = SPEvent::ACTIVATE; + if ( spitem != nullptr ) + { + spitem->emitEvent (spev); + } + } } active = FALSE; break; - case GDK_MOTION_NOTIFY: + case GDK_MOTION_NOTIFY: active = FALSE; break; - case GDK_ENTER_NOTIFY: - spev.type = SP_EVENT_MOUSEOVER; - spev.data = svgview; + case GDK_ENTER_NOTIFY: + spev.type = SPEvent::MOUSEOVER; + spev.view = svgview; if ( spitem != nullptr ) { - spitem->emitEvent (spev); + spitem->emitEvent (spev); } break; - case GDK_LEAVE_NOTIFY: - spev.type = SP_EVENT_MOUSEOUT; - spev.data = svgview; + case GDK_LEAVE_NOTIFY: + spev.type = SPEvent::MOUSEOUT; + spev.view = svgview; if ( spitem != nullptr ) { - spitem->emitEvent (spev); + spitem->emitEvent (spev); } break; - default: + default: break; } |
