Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(725)

Side by Side Diff: webkit/glue/webcursor_gtk.cc

Issue 155172: Start using WebCursorInfo from the WebKit API. WebCursorInfo is a... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/glue/webcursor.cc ('k') | webkit/glue/webcursor_mac.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2008 The Chromium Authors. All rights reserved. Use of this 1 // Copyright (c) 2008 The Chromium Authors. All rights reserved. Use of this
2 // source code is governed by a BSD-style license that can be found in the 2 // source code is governed by a BSD-style license that can be found in the
3 // LICENSE file. 3 // LICENSE file.
4 4
5 #include "webkit/glue/webcursor.h" 5 #include "webkit/glue/webcursor.h"
6 6
7 #include <gdk/gdk.h> 7 #include <gdk/gdk.h>
8 8
9 #include "config.h" 9 #include "base/logging.h"
10 #include "PlatformCursor.h" 10 #include "webkit/api/public/WebCursorInfo.h"
11 11
12 #undef LOG 12 using WebKit::WebCursorInfo;
13 #include "base/logging.h"
14
15 using WebCore::PlatformCursor;
16 13
17 namespace { 14 namespace {
18 15
19 // webcursor_gtk_data.h is taken directly from WebKit's CursorGtk.h. 16 // webcursor_gtk_data.h is taken directly from WebKit's CursorGtk.h.
20 #include "webkit/glue/webcursor_gtk_data.h" 17 #include "webkit/glue/webcursor_gtk_data.h"
21 18
22 // This helper function is taken directly from WebKit's CursorGtk.cpp. 19 // This helper function is taken directly from WebKit's CursorGtk.cpp.
23 // It attempts to create a custom cursor from the data inlined in 20 // It attempts to create a custom cursor from the data inlined in
24 // webcursor_gtk_data.h. 21 // webcursor_gtk_data.h.
25 GdkCursor* GetInlineCustomCursor(CustomCursorType type) { 22 GdkCursor* GetInlineCustomCursor(CustomCursorType type) {
(...skipping 15 matching lines...) Expand all
41 return cursor; 38 return cursor;
42 } 39 }
43 40
44 } // end anonymous namespace 41 } // end anonymous namespace
45 42
46 GdkCursorType WebCursor::GetCursorType() const { 43 GdkCursorType WebCursor::GetCursorType() const {
47 // http://library.gnome.org/devel/gdk/2.12/gdk-Cursors.html has images 44 // http://library.gnome.org/devel/gdk/2.12/gdk-Cursors.html has images
48 // of the default X theme, but beware that the user's cursor theme can 45 // of the default X theme, but beware that the user's cursor theme can
49 // change everything. 46 // change everything.
50 switch (type_) { 47 switch (type_) {
51 case PlatformCursor::TypePointer: 48 case WebCursorInfo::TypePointer:
52 return GDK_LAST_CURSOR; 49 return GDK_LAST_CURSOR;
53 case PlatformCursor::TypeCross: 50 case WebCursorInfo::TypeCross:
54 return GDK_CROSS; 51 return GDK_CROSS;
55 case PlatformCursor::TypeHand: 52 case WebCursorInfo::TypeHand:
56 return GDK_HAND2; 53 return GDK_HAND2;
57 case PlatformCursor::TypeIBeam: 54 case WebCursorInfo::TypeIBeam:
58 return GDK_XTERM; 55 return GDK_XTERM;
59 case PlatformCursor::TypeWait: 56 case WebCursorInfo::TypeWait:
60 return GDK_WATCH; 57 return GDK_WATCH;
61 case PlatformCursor::TypeHelp: 58 case WebCursorInfo::TypeHelp:
62 return GDK_QUESTION_ARROW; 59 return GDK_QUESTION_ARROW;
63 case PlatformCursor::TypeEastResize: 60 case WebCursorInfo::TypeEastResize:
64 return GDK_RIGHT_SIDE; 61 return GDK_RIGHT_SIDE;
65 case PlatformCursor::TypeNorthResize: 62 case WebCursorInfo::TypeNorthResize:
66 return GDK_TOP_SIDE; 63 return GDK_TOP_SIDE;
67 case PlatformCursor::TypeNorthEastResize: 64 case WebCursorInfo::TypeNorthEastResize:
68 return GDK_TOP_RIGHT_CORNER; 65 return GDK_TOP_RIGHT_CORNER;
69 case PlatformCursor::TypeNorthWestResize: 66 case WebCursorInfo::TypeNorthWestResize:
70 return GDK_TOP_LEFT_CORNER; 67 return GDK_TOP_LEFT_CORNER;
71 case PlatformCursor::TypeSouthResize: 68 case WebCursorInfo::TypeSouthResize:
72 return GDK_BOTTOM_SIDE; 69 return GDK_BOTTOM_SIDE;
73 case PlatformCursor::TypeSouthEastResize: 70 case WebCursorInfo::TypeSouthEastResize:
74 return GDK_BOTTOM_RIGHT_CORNER; 71 return GDK_BOTTOM_RIGHT_CORNER;
75 case PlatformCursor::TypeSouthWestResize: 72 case WebCursorInfo::TypeSouthWestResize:
76 return GDK_BOTTOM_LEFT_CORNER; 73 return GDK_BOTTOM_LEFT_CORNER;
77 case PlatformCursor::TypeWestResize: 74 case WebCursorInfo::TypeWestResize:
78 return GDK_LEFT_SIDE; 75 return GDK_LEFT_SIDE;
79 case PlatformCursor::TypeNorthSouthResize: 76 case WebCursorInfo::TypeNorthSouthResize:
80 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 77 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
81 case PlatformCursor::TypeEastWestResize: 78 case WebCursorInfo::TypeEastWestResize:
82 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 79 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
83 case PlatformCursor::TypeNorthEastSouthWestResize: 80 case WebCursorInfo::TypeNorthEastSouthWestResize:
84 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 81 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
85 case PlatformCursor::TypeNorthWestSouthEastResize: 82 case WebCursorInfo::TypeNorthWestSouthEastResize:
86 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 83 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
87 case PlatformCursor::TypeColumnResize: 84 case WebCursorInfo::TypeColumnResize:
88 return GDK_SB_H_DOUBLE_ARROW; // TODO(evanm): is this correct? 85 return GDK_SB_H_DOUBLE_ARROW; // TODO(evanm): is this correct?
89 case PlatformCursor::TypeRowResize: 86 case WebCursorInfo::TypeRowResize:
90 return GDK_SB_V_DOUBLE_ARROW; // TODO(evanm): is this correct? 87 return GDK_SB_V_DOUBLE_ARROW; // TODO(evanm): is this correct?
91 case PlatformCursor::TypeMiddlePanning: 88 case WebCursorInfo::TypeMiddlePanning:
92 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 89 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
93 case PlatformCursor::TypeEastPanning: 90 case WebCursorInfo::TypeEastPanning:
94 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 91 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
95 case PlatformCursor::TypeNorthPanning: 92 case WebCursorInfo::TypeNorthPanning:
96 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 93 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
97 case PlatformCursor::TypeNorthEastPanning: 94 case WebCursorInfo::TypeNorthEastPanning:
98 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 95 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
99 case PlatformCursor::TypeNorthWestPanning: 96 case WebCursorInfo::TypeNorthWestPanning:
100 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 97 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
101 case PlatformCursor::TypeSouthPanning: 98 case WebCursorInfo::TypeSouthPanning:
102 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 99 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
103 case PlatformCursor::TypeSouthEastPanning: 100 case WebCursorInfo::TypeSouthEastPanning:
104 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 101 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
105 case PlatformCursor::TypeSouthWestPanning: 102 case WebCursorInfo::TypeSouthWestPanning:
106 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 103 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
107 case PlatformCursor::TypeWestPanning: 104 case WebCursorInfo::TypeWestPanning:
108 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 105 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
109 case PlatformCursor::TypeMove: 106 case WebCursorInfo::TypeMove:
110 return GDK_FLEUR; 107 return GDK_FLEUR;
111 case PlatformCursor::TypeVerticalText: 108 case WebCursorInfo::TypeVerticalText:
112 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 109 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
113 case PlatformCursor::TypeCell: 110 case WebCursorInfo::TypeCell:
114 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 111 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
115 case PlatformCursor::TypeContextMenu: 112 case WebCursorInfo::TypeContextMenu:
116 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 113 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
117 case PlatformCursor::TypeAlias: 114 case WebCursorInfo::TypeAlias:
118 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 115 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
119 case PlatformCursor::TypeProgress: 116 case WebCursorInfo::TypeProgress:
120 return GDK_WATCH; 117 return GDK_WATCH;
121 case PlatformCursor::TypeNoDrop: 118 case WebCursorInfo::TypeNoDrop:
122 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 119 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
123 case PlatformCursor::TypeCopy: 120 case WebCursorInfo::TypeCopy:
124 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 121 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
125 case PlatformCursor::TypeNone: 122 case WebCursorInfo::TypeNone:
126 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 123 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
127 case PlatformCursor::TypeNotAllowed: 124 case WebCursorInfo::TypeNotAllowed:
128 NOTIMPLEMENTED(); return GDK_LAST_CURSOR; 125 NOTIMPLEMENTED(); return GDK_LAST_CURSOR;
129 case PlatformCursor::TypeZoomIn: 126 case WebCursorInfo::TypeZoomIn:
130 case PlatformCursor::TypeZoomOut: 127 case WebCursorInfo::TypeZoomOut:
131 case PlatformCursor::TypeCustom: 128 case WebCursorInfo::TypeCustom:
132 return GDK_CURSOR_IS_PIXMAP; 129 return GDK_CURSOR_IS_PIXMAP;
133 } 130 }
134 NOTREACHED(); 131 NOTREACHED();
135 return GDK_LAST_CURSOR; 132 return GDK_LAST_CURSOR;
136 } 133 }
137 134
138 GdkCursor* WebCursor::GetCustomCursor() const { 135 GdkCursor* WebCursor::GetCustomCursor() const {
139 switch (type_) { 136 switch (type_) {
140 case PlatformCursor::TypeZoomIn: 137 case WebCursorInfo::TypeZoomIn:
141 return GetInlineCustomCursor(CustomCursorZoomIn); 138 return GetInlineCustomCursor(CustomCursorZoomIn);
142 case PlatformCursor::TypeZoomOut: 139 case WebCursorInfo::TypeZoomOut:
143 return GetInlineCustomCursor(CustomCursorZoomOut); 140 return GetInlineCustomCursor(CustomCursorZoomOut);
144 } 141 }
145 142
146 if (type_ != PlatformCursor::TypeCustom) { 143 if (type_ != WebCursorInfo::TypeCustom) {
147 NOTREACHED(); 144 NOTREACHED();
148 return NULL; 145 return NULL;
149 } 146 }
150 147
151 const guchar* data = reinterpret_cast<const guchar*>(&custom_data_[0]); 148 const guchar* data = reinterpret_cast<const guchar*>(&custom_data_[0]);
152 GdkPixbuf* pixbuf = 149 GdkPixbuf* pixbuf =
153 gdk_pixbuf_new_from_data(data, 150 gdk_pixbuf_new_from_data(data,
154 GDK_COLORSPACE_RGB, 151 GDK_COLORSPACE_RGB,
155 TRUE, // has_alpha 152 TRUE, // has_alpha
156 8, // bits_per_sample 153 8, // bits_per_sample
(...skipping 29 matching lines...) Expand all
186 return true; 183 return true;
187 } 184 }
188 185
189 void WebCursor::CleanupPlatformData() { 186 void WebCursor::CleanupPlatformData() {
190 return; 187 return;
191 } 188 }
192 189
193 void WebCursor::CopyPlatformData(const WebCursor& other) { 190 void WebCursor::CopyPlatformData(const WebCursor& other) {
194 return; 191 return;
195 } 192 }
OLDNEW
« no previous file with comments | « webkit/glue/webcursor.cc ('k') | webkit/glue/webcursor_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698