Index: services/ui/public/interfaces/cursor/cursor_struct_traits.cc |
diff --git a/services/ui/public/interfaces/cursor/cursor_struct_traits.cc b/services/ui/public/interfaces/cursor/cursor_struct_traits.cc |
index 609ab837dec0b4d343539dfc38435b02b03e244e..cde0e42f714454cff2b23e1e5b20c83f0df34733 100644 |
--- a/services/ui/public/interfaces/cursor/cursor_struct_traits.cc |
+++ b/services/ui/public/interfaces/cursor/cursor_struct_traits.cc |
@@ -6,6 +6,7 @@ |
#include "base/time/time.h" |
#include "mojo/common/common_custom_types_struct_traits.h" |
+#include "services/ui/public/interfaces/cursor/cursor.mojom.h" |
#include "skia/public/interfaces/bitmap_array_struct_traits.h" |
#include "skia/public/interfaces/bitmap_skbitmap_struct_traits.h" |
#include "third_party/skia/include/core/SkBitmap.h" |
@@ -15,6 +16,260 @@ |
namespace mojo { |
// static |
+ui::mojom::CursorType |
+EnumTraits<ui::mojom::CursorType, ui::CursorType>::ToMojom( |
+ ui::CursorType input) { |
+ switch (input) { |
+ case ui::CursorType::kNull: |
+ return ui::mojom::CursorType::kNull; |
+ case ui::CursorType::kPointer: |
+ return ui::mojom::CursorType::kPointer; |
+ case ui::CursorType::kCross: |
+ return ui::mojom::CursorType::kCross; |
+ case ui::CursorType::kHand: |
+ return ui::mojom::CursorType::kHand; |
+ case ui::CursorType::kIBeam: |
+ return ui::mojom::CursorType::kIBeam; |
+ case ui::CursorType::kWait: |
+ return ui::mojom::CursorType::kWait; |
+ case ui::CursorType::kHelp: |
+ return ui::mojom::CursorType::kHelp; |
+ case ui::CursorType::kEastResize: |
+ return ui::mojom::CursorType::kEastResize; |
+ case ui::CursorType::kNorthResize: |
+ return ui::mojom::CursorType::kNorthResize; |
+ case ui::CursorType::kNorthEastResize: |
+ return ui::mojom::CursorType::kNorthEastResize; |
+ case ui::CursorType::kNorthWestResize: |
+ return ui::mojom::CursorType::kNorthWestResize; |
+ case ui::CursorType::kSouthResize: |
+ return ui::mojom::CursorType::kSouthResize; |
+ case ui::CursorType::kSouthEastResize: |
+ return ui::mojom::CursorType::kSouthEastResize; |
+ case ui::CursorType::kSouthWestResize: |
+ return ui::mojom::CursorType::kSouthWestResize; |
+ case ui::CursorType::kWestResize: |
+ return ui::mojom::CursorType::kWestResize; |
+ case ui::CursorType::kNorthSouthResize: |
+ return ui::mojom::CursorType::kNorthSouthResize; |
+ case ui::CursorType::kEastWestResize: |
+ return ui::mojom::CursorType::kEastWestResize; |
+ case ui::CursorType::kNorthEastSouthWestResize: |
+ return ui::mojom::CursorType::kNorthEastSouthWestResize; |
+ case ui::CursorType::kNorthWestSouthEastResize: |
+ return ui::mojom::CursorType::kNorthWestSouthEastResize; |
+ case ui::CursorType::kColumnResize: |
+ return ui::mojom::CursorType::kColumnResize; |
+ case ui::CursorType::kRowResize: |
+ return ui::mojom::CursorType::kRowResize; |
+ case ui::CursorType::kMiddlePanning: |
+ return ui::mojom::CursorType::kMiddlePanning; |
+ case ui::CursorType::kEastPanning: |
+ return ui::mojom::CursorType::kEastPanning; |
+ case ui::CursorType::kNorthPanning: |
+ return ui::mojom::CursorType::kNorthPanning; |
+ case ui::CursorType::kNorthEastPanning: |
+ return ui::mojom::CursorType::kNorthEastPanning; |
+ case ui::CursorType::kNorthWestPanning: |
+ return ui::mojom::CursorType::kNorthWestPanning; |
+ case ui::CursorType::kSouthPanning: |
+ return ui::mojom::CursorType::kSouthPanning; |
+ case ui::CursorType::kSouthEastPanning: |
+ return ui::mojom::CursorType::kSouthEastPanning; |
+ case ui::CursorType::kSouthWestPanning: |
+ return ui::mojom::CursorType::kSouthWestPanning; |
+ case ui::CursorType::kWestPanning: |
+ return ui::mojom::CursorType::kWestPanning; |
+ case ui::CursorType::kMove: |
+ return ui::mojom::CursorType::kMove; |
+ case ui::CursorType::kVerticalText: |
+ return ui::mojom::CursorType::kVerticalText; |
+ case ui::CursorType::kCell: |
+ return ui::mojom::CursorType::kCell; |
+ case ui::CursorType::kContextMenu: |
+ return ui::mojom::CursorType::kContextMenu; |
+ case ui::CursorType::kAlias: |
+ return ui::mojom::CursorType::kAlias; |
+ case ui::CursorType::kProgress: |
+ return ui::mojom::CursorType::kProgress; |
+ case ui::CursorType::kNoDrop: |
+ return ui::mojom::CursorType::kNoDrop; |
+ case ui::CursorType::kCopy: |
+ return ui::mojom::CursorType::kCopy; |
+ case ui::CursorType::kNone: |
+ return ui::mojom::CursorType::kNone; |
+ case ui::CursorType::kNotAllowed: |
+ return ui::mojom::CursorType::kNotAllowed; |
+ case ui::CursorType::kZoomIn: |
+ return ui::mojom::CursorType::kZoomIn; |
+ case ui::CursorType::kZoomOut: |
+ return ui::mojom::CursorType::kZoomOut; |
+ case ui::CursorType::kGrab: |
+ return ui::mojom::CursorType::kGrab; |
+ case ui::CursorType::kGrabbing: |
+ return ui::mojom::CursorType::kGrabbing; |
+ case ui::CursorType::kCustom: |
+ return ui::mojom::CursorType::kCustom; |
+ case ui::CursorType::kDndNone: |
+ case ui::CursorType::kDndMove: |
+ case ui::CursorType::kDndCopy: |
+ case ui::CursorType::kDndLink: |
+ // The mojom version is the same as the restricted Webcursor constants; |
+ // don't allow system cursors to be transmitted. |
+ NOTREACHED(); |
+ return ui::mojom::CursorType::kNull; |
+ } |
+ NOTREACHED(); |
+ return ui::mojom::CursorType::kNull; |
+} |
+ |
+// static |
+bool EnumTraits<ui::mojom::CursorType, ui::CursorType>::FromMojom( |
+ ui::mojom::CursorType input, |
+ ui::CursorType* out) { |
+ switch (input) { |
+ case ui::mojom::CursorType::kNull: |
+ *out = ui::CursorType::kNull; |
+ return true; |
+ case ui::mojom::CursorType::kPointer: |
+ *out = ui::CursorType::kPointer; |
+ return true; |
+ case ui::mojom::CursorType::kCross: |
+ *out = ui::CursorType::kCross; |
+ return true; |
+ case ui::mojom::CursorType::kHand: |
+ *out = ui::CursorType::kHand; |
+ return true; |
+ case ui::mojom::CursorType::kIBeam: |
+ *out = ui::CursorType::kIBeam; |
+ return true; |
+ case ui::mojom::CursorType::kWait: |
+ *out = ui::CursorType::kWait; |
+ return true; |
+ case ui::mojom::CursorType::kHelp: |
+ *out = ui::CursorType::kHelp; |
+ return true; |
+ case ui::mojom::CursorType::kEastResize: |
+ *out = ui::CursorType::kEastResize; |
+ return true; |
+ case ui::mojom::CursorType::kNorthResize: |
+ *out = ui::CursorType::kNorthResize; |
+ return true; |
+ case ui::mojom::CursorType::kNorthEastResize: |
+ *out = ui::CursorType::kNorthEastResize; |
+ return true; |
+ case ui::mojom::CursorType::kNorthWestResize: |
+ *out = ui::CursorType::kNorthWestResize; |
+ return true; |
+ case ui::mojom::CursorType::kSouthResize: |
+ *out = ui::CursorType::kSouthResize; |
+ return true; |
+ case ui::mojom::CursorType::kSouthEastResize: |
+ *out = ui::CursorType::kSouthEastResize; |
+ return true; |
+ case ui::mojom::CursorType::kSouthWestResize: |
+ *out = ui::CursorType::kSouthWestResize; |
+ return true; |
+ case ui::mojom::CursorType::kWestResize: |
+ *out = ui::CursorType::kWestResize; |
+ return true; |
+ case ui::mojom::CursorType::kNorthSouthResize: |
+ *out = ui::CursorType::kNorthSouthResize; |
+ return true; |
+ case ui::mojom::CursorType::kEastWestResize: |
+ *out = ui::CursorType::kEastWestResize; |
+ return true; |
+ case ui::mojom::CursorType::kNorthEastSouthWestResize: |
+ *out = ui::CursorType::kNorthEastSouthWestResize; |
+ return true; |
+ case ui::mojom::CursorType::kNorthWestSouthEastResize: |
+ *out = ui::CursorType::kNorthWestSouthEastResize; |
+ return true; |
+ case ui::mojom::CursorType::kColumnResize: |
+ *out = ui::CursorType::kColumnResize; |
+ return true; |
+ case ui::mojom::CursorType::kRowResize: |
+ *out = ui::CursorType::kRowResize; |
+ return true; |
+ case ui::mojom::CursorType::kMiddlePanning: |
+ *out = ui::CursorType::kMiddlePanning; |
+ return true; |
+ case ui::mojom::CursorType::kEastPanning: |
+ *out = ui::CursorType::kEastPanning; |
+ return true; |
+ case ui::mojom::CursorType::kNorthPanning: |
+ *out = ui::CursorType::kNorthPanning; |
+ return true; |
+ case ui::mojom::CursorType::kNorthEastPanning: |
+ *out = ui::CursorType::kNorthEastPanning; |
+ return true; |
+ case ui::mojom::CursorType::kNorthWestPanning: |
+ *out = ui::CursorType::kNorthWestPanning; |
+ return true; |
+ case ui::mojom::CursorType::kSouthPanning: |
+ *out = ui::CursorType::kSouthPanning; |
+ return true; |
+ case ui::mojom::CursorType::kSouthEastPanning: |
+ *out = ui::CursorType::kSouthEastPanning; |
+ return true; |
+ case ui::mojom::CursorType::kSouthWestPanning: |
+ *out = ui::CursorType::kSouthWestPanning; |
+ return true; |
+ case ui::mojom::CursorType::kWestPanning: |
+ *out = ui::CursorType::kWestPanning; |
+ return true; |
+ case ui::mojom::CursorType::kMove: |
+ *out = ui::CursorType::kMove; |
+ return true; |
+ case ui::mojom::CursorType::kVerticalText: |
+ *out = ui::CursorType::kVerticalText; |
+ return true; |
+ case ui::mojom::CursorType::kCell: |
+ *out = ui::CursorType::kCell; |
+ return true; |
+ case ui::mojom::CursorType::kContextMenu: |
+ *out = ui::CursorType::kContextMenu; |
+ return true; |
+ case ui::mojom::CursorType::kAlias: |
+ *out = ui::CursorType::kAlias; |
+ return true; |
+ case ui::mojom::CursorType::kProgress: |
+ *out = ui::CursorType::kProgress; |
+ return true; |
+ case ui::mojom::CursorType::kNoDrop: |
+ *out = ui::CursorType::kNoDrop; |
+ return true; |
+ case ui::mojom::CursorType::kCopy: |
+ *out = ui::CursorType::kCopy; |
+ return true; |
+ case ui::mojom::CursorType::kNone: |
+ *out = ui::CursorType::kNone; |
+ return true; |
+ case ui::mojom::CursorType::kNotAllowed: |
+ *out = ui::CursorType::kNotAllowed; |
+ return true; |
+ case ui::mojom::CursorType::kZoomIn: |
+ *out = ui::CursorType::kZoomIn; |
+ return true; |
+ case ui::mojom::CursorType::kZoomOut: |
+ *out = ui::CursorType::kZoomOut; |
+ return true; |
+ case ui::mojom::CursorType::kGrab: |
+ *out = ui::CursorType::kGrab; |
+ return true; |
+ case ui::mojom::CursorType::kGrabbing: |
+ *out = ui::CursorType::kGrabbing; |
+ return true; |
+ case ui::mojom::CursorType::kCustom: |
+ *out = ui::CursorType::kCustom; |
+ return true; |
+ } |
+ |
+ NOTREACHED(); |
+ return false; |
+} |
+ |
+// static |
const base::TimeDelta& |
StructTraits<ui::mojom::CursorDataDataView, ui::CursorData>::frame_delay( |
const ui::CursorData& c) { |
@@ -39,9 +294,12 @@ StructTraits<ui::mojom::CursorDataDataView, ui::CursorData>::cursor_frames( |
bool StructTraits<ui::mojom::CursorDataDataView, ui::CursorData>::Read( |
ui::mojom::CursorDataDataView data, |
ui::CursorData* out) { |
- ui::mojom::CursorType type = data.cursor_type(); |
- if (type != ui::mojom::CursorType::CUSTOM) { |
- *out = ui::CursorData(static_cast<int>(type)); |
+ ui::CursorType type; |
+ if (!data.ReadCursorType(&type)) |
+ return false; |
+ |
+ if (type != ui::CursorType::kCustom) { |
+ *out = ui::CursorData(type); |
return true; |
} |