blob: 0a267bc8dc8d73278ec12b5ba588eca923766985 [file] [log] [blame]
// Copyright 2015 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.
module ui.mojom;
import "mojo/public/mojom/base/time.mojom";
import "skia/public/interfaces/bitmap.mojom";
import "ui/gfx/geometry/mojo/geometry.mojom";
// Standard Cursor numbers. These are the same as Chrome's ui::Cursor and
// blink's WebCursorInfo.
enum CursorType {
// kNull is kept for compatibility with chrome declarations. In chrome code,
// it is treated exactly like kPointer, the default pointer.
kNull = 0,
kPointer,
kCross,
kHand,
kIBeam,
kWait,
kHelp,
kEastResize,
kNorthResize,
kNorthEastResize,
kNorthWestResize,
kSouthResize,
kSouthEastResize,
kSouthWestResize,
kWestResize,
kNorthSouthResize,
kEastWestResize,
kNorthEastSouthWestResize,
kNorthWestSouthEastResize,
kColumnResize,
kRowResize,
kMiddlePanning,
kEastPanning,
kNorthPanning,
kNorthEastPanning,
kNorthWestPanning,
kSouthPanning,
kSouthEastPanning,
kSouthWestPanning,
kWestPanning,
kMove,
kVerticalText,
kCell,
kContextMenu,
kAlias,
kProgress,
kNoDrop,
kCopy,
kNone,
kNotAllowed,
kZoomIn,
kZoomOut,
kGrab,
kGrabbing,
kCustom
};
// Whether we use normal or large cursors. These are the same as Chrome's
// ui::CursorSize.
enum CursorSize {
kNormal,
kLarge
};
// A description of a cursor.
struct CursorData {
// The type of cursor. If kCustom, the rest of the fields are relevant.
CursorType cursor_type;
// The delay between cursor frames.
mojo_base.mojom.TimeDelta frame_delay;
// The hotspot in pixels in the source cursor frames.
gfx.mojom.Point hotspot_in_pixels;
// The frames of the cursor. Must be non-empty if |cursor_type| is kCustom.
array<skia.mojom.Bitmap?> cursor_frames;
// This is the image scale of this cursor.
float scale_factor;
};