summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webcursor_gtk.cc
diff options
context:
space:
mode:
authorevanm@google.com <evanm@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-11 18:28:50 +0000
committerevanm@google.com <evanm@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-11 18:28:50 +0000
commitbe18d3eae2db247dc5a0e211cc97579620324641 (patch)
tree4b3bfe1413bd6c714a048e5cca80a02938fce9e3 /webkit/glue/webcursor_gtk.cc
parent0d8a7a1b0662e50c962cd3f14d7ef1a65d5a630b (diff)
downloadchromium_src-be18d3eae2db247dc5a0e211cc97579620324641.zip
chromium_src-be18d3eae2db247dc5a0e211cc97579620324641.tar.gz
chromium_src-be18d3eae2db247dc5a0e211cc97579620324641.tar.bz2
Basic cursor support.
Review URL: http://codereview.chromium.org/9744 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5185 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webcursor_gtk.cc')
-rw-r--r--webkit/glue/webcursor_gtk.cc107
1 files changed, 107 insertions, 0 deletions
diff --git a/webkit/glue/webcursor_gtk.cc b/webkit/glue/webcursor_gtk.cc
new file mode 100644
index 0000000..6224804
--- /dev/null
+++ b/webkit/glue/webcursor_gtk.cc
@@ -0,0 +1,107 @@
+// Copyright (c) 2008 The Chromium Authors. All rights reserved. Use of this
+// source code is governed by a BSD-style license that can be found in the
+// LICENSE file.
+
+#include "webkit/glue/webcursor.h"
+
+#include "config.h"
+#include "PlatformCursor.h"
+
+#undef LOG
+#include "base/logging.h"
+
+using WebCore::PlatformCursor;
+
+GdkCursorType WebCursor::GetCursorType() const {
+ // http://library.gnome.org/devel/gdk/2.12/gdk-Cursors.html has images
+ // of the default X theme, but beware that the user's cursor theme can
+ // change everything.
+ switch (type_) {
+ case PlatformCursor::typePointer:
+ return GDK_ARROW;
+ case PlatformCursor::typeCross:
+ return GDK_CROSS;
+ case PlatformCursor::typeHand:
+ return GDK_HAND2;
+ case PlatformCursor::typeIBeam:
+ return GDK_XTERM;
+ case PlatformCursor::typeWait:
+ return GDK_WATCH;
+ case PlatformCursor::typeHelp:
+ return GDK_QUESTION_ARROW;
+ case PlatformCursor::typeEastResize:
+ return GDK_RIGHT_SIDE;
+ case PlatformCursor::typeNorthResize:
+ return GDK_TOP_SIDE;
+ case PlatformCursor::typeNorthEastResize:
+ return GDK_TOP_RIGHT_CORNER;
+ case PlatformCursor::typeNorthWestResize:
+ return GDK_TOP_LEFT_CORNER;
+ case PlatformCursor::typeSouthResize:
+ return GDK_BOTTOM_SIDE;
+ case PlatformCursor::typeSouthEastResize:
+ return GDK_BOTTOM_LEFT_CORNER;
+ case PlatformCursor::typeSouthWestResize:
+ return GDK_BOTTOM_RIGHT_CORNER;
+ case PlatformCursor::typeWestResize:
+ return GDK_LEFT_SIDE;
+ case PlatformCursor::typeNorthSouthResize:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeEastWestResize:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeNorthEastSouthWestResize:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeNorthWestSouthEastResize:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeColumnResize:
+ return GDK_SB_H_DOUBLE_ARROW; // TODO(evanm): is this correct?
+ case PlatformCursor::typeRowResize:
+ return GDK_SB_V_DOUBLE_ARROW; // TODO(evanm): is this correct?
+ case PlatformCursor::typeMiddlePanning:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeEastPanning:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeNorthPanning:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeNorthEastPanning:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeNorthWestPanning:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeSouthPanning:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeSouthEastPanning:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeSouthWestPanning:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeWestPanning:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeMove:
+ return GDK_FLEUR;
+ case PlatformCursor::typeVerticalText:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeCell:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeContextMenu:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeAlias:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeProgress:
+ return GDK_WATCH;
+ case PlatformCursor::typeNoDrop:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeCopy:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeNone:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeNotAllowed:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeZoomIn:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeZoomOut:
+ NOTIMPLEMENTED(); return GDK_ARROW;
+ case PlatformCursor::typeCustom:
+ return GDK_CURSOR_IS_PIXMAP;
+ }
+ NOTREACHED();
+ return GDK_ARROW;
+}