summaryrefslogtreecommitdiffstats
path: root/src/ui/view
diff options
context:
space:
mode:
authorAlexander Valavanis <valavanisalex@gmail.com>2018-11-30 18:49:45 +0000
committerAlexander Valavanis <valavanisalex@gmail.com>2018-11-30 18:49:45 +0000
commit0a8ee1584a84080037bf9504b13fb49923383348 (patch)
treed33fa7fbb48f0c358deb59050b833f2b652b79d9 /src/ui/view
parentSPButton: GObject style fix (diff)
parentStart of making View independent of GUI. (diff)
downloadinkscape-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/README19
-rw-r--r--src/ui/view/svg-view.cpp57
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;
}