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

Side by Side Diff: ash/wm/image_cursors.cc

Issue 10919135: Move ash specific cursor code to CursorManager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 3 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
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ash/wm/image_cursors.h"
6
7 #include "base/logging.h"
8 #include "ui/base/cursor/cursor_loader.h"
9 #include "ui/base/cursor/cursor.h"
10 #include "grit/ui_resources.h"
11
12 namespace {
13
14 struct CursorData {
15 int id;
16 int resource_id;
17 int hot_x;
18 int hot_y;
19 };
20
21 // The cursor's hot points are defined in chromeos cursor images at:
22 // http://folder/kuscher/projects/Chrome_OS/Pointers/focuspoint
23 const CursorData kImageCursors[] = {
24 {ui::kCursorNull, IDR_AURA_CURSOR_PTR, 8, 3},
25 {ui::kCursorPointer, IDR_AURA_CURSOR_PTR, 8, 3},
26 {ui::kCursorNoDrop, IDR_AURA_CURSOR_NO_DROP, 3, 1},
27 {ui::kCursorNotAllowed, IDR_AURA_CURSOR_NO_DROP, 3, 1},
28 {ui::kCursorCopy, IDR_AURA_CURSOR_COPY, 3, 1},
29 {ui::kCursorHand, IDR_AURA_CURSOR_HAND, 9, 3},
30 {ui::kCursorMove, IDR_AURA_CURSOR_MOVE, 11, 11},
31 {ui::kCursorNorthEastResize, IDR_AURA_CURSOR_NORTH_EAST_RESIZE, 12, 11},
32 {ui::kCursorSouthWestResize, IDR_AURA_CURSOR_SOUTH_WEST_RESIZE, 12, 11},
33 {ui::kCursorSouthEastResize, IDR_AURA_CURSOR_SOUTH_EAST_RESIZE, 11, 11},
34 {ui::kCursorNorthWestResize, IDR_AURA_CURSOR_NORTH_WEST_RESIZE, 11, 11},
35 {ui::kCursorNorthResize, IDR_AURA_CURSOR_NORTH_RESIZE, 11, 10},
36 {ui::kCursorSouthResize, IDR_AURA_CURSOR_SOUTH_RESIZE, 11, 11},
37 {ui::kCursorEastResize, IDR_AURA_CURSOR_EAST_RESIZE, 11, 11},
38 {ui::kCursorWestResize, IDR_AURA_CURSOR_WEST_RESIZE, 11, 11},
39 {ui::kCursorIBeam, IDR_AURA_CURSOR_IBEAM, 12, 12},
40 {ui::kCursorAlias, IDR_AURA_CURSOR_ALIAS, 8, 5},
41 {ui::kCursorCell, IDR_AURA_CURSOR_CELL, 12, 11},
42 {ui::kCursorContextMenu, IDR_AURA_CURSOR_CONTEXT_MENU, 3, 1},
43 {ui::kCursorCross, IDR_AURA_CURSOR_CROSSHAIR, 12, 11},
44 {ui::kCursorHelp, IDR_AURA_CURSOR_HELP, 3, 1},
45 {ui::kCursorVerticalText, IDR_AURA_CURSOR_XTERM_HORIZ, 12, 12},
46 {ui::kCursorZoomIn, IDR_AURA_CURSOR_ZOOM_IN, 12, 12},
47 {ui::kCursorZoomOut, IDR_AURA_CURSOR_ZOOM_OUT, 11, 11},
48 {ui::kCursorRowResize, IDR_AURA_CURSOR_ROW_RESIZE, 11, 11},
49 {ui::kCursorColumnResize, IDR_AURA_CURSOR_COL_RESIZE, 11, 11},
50 {ui::kCursorEastWestResize, IDR_AURA_CURSOR_EAST_WEST_RESIZE, 11, 11},
51 {ui::kCursorNorthSouthResize, IDR_AURA_CURSOR_NORTH_SOUTH_RESIZE, 11, 11},
52 {ui::kCursorNorthEastSouthWestResize,
53 IDR_AURA_CURSOR_NORTH_EAST_SOUTH_WEST_RESIZE, 12, 11},
54 {ui::kCursorNorthWestSouthEastResize,
55 IDR_AURA_CURSOR_NORTH_WEST_SOUTH_EAST_RESIZE, 11, 11},
56 };
57
58 const CursorData kAnimatedCursors[] = {
59 {ui::kCursorWait, IDR_THROBBER, 7, 7},
60 {ui::kCursorProgress, IDR_THROBBER, 7, 7},
61 };
62
63 } // namespace
64
65 namespace ash {
66
67 ImageCursors::ImageCursors()
68 : cursor_loader_(ui::CursorLoader::Create()) {
69 }
70
71 ImageCursors::~ImageCursors() {
72 }
73
74 float ImageCursors::GetDeviceScaleFactor() const {
75 return cursor_loader_->device_scale_factor();
76 }
77
78 void ImageCursors::Reload(float device_scale_factor) {
79 if (GetDeviceScaleFactor() == device_scale_factor)
80 return;
81
82 cursor_loader_->UnloadAll();
83 cursor_loader_->set_device_scale_factor(device_scale_factor);
84
85 for (size_t i = 0; i < arraysize(kImageCursors); ++i) {
86 cursor_loader_->LoadImageCursor(kImageCursors[i].id,
87 kImageCursors[i].resource_id,
88 kImageCursors[i].hot_x,
89 kImageCursors[i].hot_y);
90 }
91 for (size_t i = 0; i < arraysize(kAnimatedCursors); ++i) {
92 cursor_loader_->LoadAnimatedCursor(kAnimatedCursors[i].id,
93 kAnimatedCursors[i].resource_id,
94 kAnimatedCursors[i].hot_x,
95 kAnimatedCursors[i].hot_y);
96 }
97 }
98
99 void ImageCursors::SetPlatformCursor(gfx::NativeCursor* cursor) {
100 cursor_loader_->SetPlatformCursor(cursor);
101 }
102
103 void ImageCursors::HideHostCursor() {
104 cursor_loader_->HideHostCursor();
105 }
106
107 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698