| Index: ash/wm/image_cursors.cc
|
| diff --git a/ash/wm/image_cursors.cc b/ash/wm/image_cursors.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1e8f5b6380012e281b46d21755274765f80e761d
|
| --- /dev/null
|
| +++ b/ash/wm/image_cursors.cc
|
| @@ -0,0 +1,107 @@
|
| +// Copyright (c) 2012 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 "ash/wm/image_cursors.h"
|
| +
|
| +#include "base/logging.h"
|
| +#include "ui/base/cursor/cursor_loader.h"
|
| +#include "ui/base/cursor/cursor.h"
|
| +#include "grit/ui_resources.h"
|
| +
|
| +namespace {
|
| +
|
| +struct CursorData {
|
| + int id;
|
| + int resource_id;
|
| + int hot_x;
|
| + int hot_y;
|
| +};
|
| +
|
| +// The cursor's hot points are defined in chromeos cursor images at:
|
| +// http://folder/kuscher/projects/Chrome_OS/Pointers/focuspoint
|
| +const CursorData kImageCursors[] = {
|
| + {ui::kCursorNull, IDR_AURA_CURSOR_PTR, 8, 3},
|
| + {ui::kCursorPointer, IDR_AURA_CURSOR_PTR, 8, 3},
|
| + {ui::kCursorNoDrop, IDR_AURA_CURSOR_NO_DROP, 3, 1},
|
| + {ui::kCursorNotAllowed, IDR_AURA_CURSOR_NO_DROP, 3, 1},
|
| + {ui::kCursorCopy, IDR_AURA_CURSOR_COPY, 3, 1},
|
| + {ui::kCursorHand, IDR_AURA_CURSOR_HAND, 9, 3},
|
| + {ui::kCursorMove, IDR_AURA_CURSOR_MOVE, 11, 11},
|
| + {ui::kCursorNorthEastResize, IDR_AURA_CURSOR_NORTH_EAST_RESIZE, 12, 11},
|
| + {ui::kCursorSouthWestResize, IDR_AURA_CURSOR_SOUTH_WEST_RESIZE, 12, 11},
|
| + {ui::kCursorSouthEastResize, IDR_AURA_CURSOR_SOUTH_EAST_RESIZE, 11, 11},
|
| + {ui::kCursorNorthWestResize, IDR_AURA_CURSOR_NORTH_WEST_RESIZE, 11, 11},
|
| + {ui::kCursorNorthResize, IDR_AURA_CURSOR_NORTH_RESIZE, 11, 10},
|
| + {ui::kCursorSouthResize, IDR_AURA_CURSOR_SOUTH_RESIZE, 11, 11},
|
| + {ui::kCursorEastResize, IDR_AURA_CURSOR_EAST_RESIZE, 11, 11},
|
| + {ui::kCursorWestResize, IDR_AURA_CURSOR_WEST_RESIZE, 11, 11},
|
| + {ui::kCursorIBeam, IDR_AURA_CURSOR_IBEAM, 12, 12},
|
| + {ui::kCursorAlias, IDR_AURA_CURSOR_ALIAS, 8, 5},
|
| + {ui::kCursorCell, IDR_AURA_CURSOR_CELL, 12, 11},
|
| + {ui::kCursorContextMenu, IDR_AURA_CURSOR_CONTEXT_MENU, 3, 1},
|
| + {ui::kCursorCross, IDR_AURA_CURSOR_CROSSHAIR, 12, 11},
|
| + {ui::kCursorHelp, IDR_AURA_CURSOR_HELP, 3, 1},
|
| + {ui::kCursorVerticalText, IDR_AURA_CURSOR_XTERM_HORIZ, 12, 12},
|
| + {ui::kCursorZoomIn, IDR_AURA_CURSOR_ZOOM_IN, 12, 12},
|
| + {ui::kCursorZoomOut, IDR_AURA_CURSOR_ZOOM_OUT, 11, 11},
|
| + {ui::kCursorRowResize, IDR_AURA_CURSOR_ROW_RESIZE, 11, 11},
|
| + {ui::kCursorColumnResize, IDR_AURA_CURSOR_COL_RESIZE, 11, 11},
|
| + {ui::kCursorEastWestResize, IDR_AURA_CURSOR_EAST_WEST_RESIZE, 11, 11},
|
| + {ui::kCursorNorthSouthResize, IDR_AURA_CURSOR_NORTH_SOUTH_RESIZE, 11, 11},
|
| + {ui::kCursorNorthEastSouthWestResize,
|
| + IDR_AURA_CURSOR_NORTH_EAST_SOUTH_WEST_RESIZE, 12, 11},
|
| + {ui::kCursorNorthWestSouthEastResize,
|
| + IDR_AURA_CURSOR_NORTH_WEST_SOUTH_EAST_RESIZE, 11, 11},
|
| +};
|
| +
|
| +const CursorData kAnimatedCursors[] = {
|
| + {ui::kCursorWait, IDR_THROBBER, 7, 7},
|
| + {ui::kCursorProgress, IDR_THROBBER, 7, 7},
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| +namespace ash {
|
| +
|
| +ImageCursors::ImageCursors()
|
| + : cursor_loader_(ui::CursorLoader::Create()) {
|
| +}
|
| +
|
| +ImageCursors::~ImageCursors() {
|
| +}
|
| +
|
| +float ImageCursors::GetDeviceScaleFactor() const {
|
| + return cursor_loader_->device_scale_factor();
|
| +}
|
| +
|
| +void ImageCursors::Reload(float device_scale_factor) {
|
| + if (GetDeviceScaleFactor() == device_scale_factor)
|
| + return;
|
| +
|
| + cursor_loader_->UnloadAll();
|
| + cursor_loader_->set_device_scale_factor(device_scale_factor);
|
| +
|
| + for (size_t i = 0; i < arraysize(kImageCursors); ++i) {
|
| + cursor_loader_->LoadImageCursor(kImageCursors[i].id,
|
| + kImageCursors[i].resource_id,
|
| + kImageCursors[i].hot_x,
|
| + kImageCursors[i].hot_y);
|
| + }
|
| + for (size_t i = 0; i < arraysize(kAnimatedCursors); ++i) {
|
| + cursor_loader_->LoadAnimatedCursor(kAnimatedCursors[i].id,
|
| + kAnimatedCursors[i].resource_id,
|
| + kAnimatedCursors[i].hot_x,
|
| + kAnimatedCursors[i].hot_y);
|
| + }
|
| +}
|
| +
|
| +void ImageCursors::SetPlatformCursor(gfx::NativeCursor* cursor) {
|
| + cursor_loader_->SetPlatformCursor(cursor);
|
| +}
|
| +
|
| +void ImageCursors::HideHostCursor() {
|
| + cursor_loader_->HideHostCursor();
|
| +}
|
| +
|
| +} // namespace ash
|
|
|