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

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: address comments 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 "ui/gfx/point.h"
11 #include "grit/ui_resources.h"
12
13 namespace {
14
15 const int kAnimatedCursorFrameDelayMs = 25;
16
17 struct CursorData {
18 int id;
19 int resource_id;
20 gfx::Point hot_1x;
21 gfx::Point hot_2x;
oshima 2012/09/07 23:08:20 this unfortunately will cause a lot of static rein
mazda 2012/09/08 00:27:02 Oh, I see. Replaced gfx::Point with a local struct
22 };
23
24 // The cursor's hot points are defined in chromeos cursor images at:
25 // http://folder/kuscher/projects/Chrome_OS/Pointers/focuspoint
26 const CursorData kImageCursors[] = {
27 {ui::kCursorNull, IDR_AURA_CURSOR_PTR,
28 gfx::Point(4, 4), gfx::Point(8, 9)},
29 {ui::kCursorPointer, IDR_AURA_CURSOR_PTR,
30 gfx::Point(4, 4), gfx::Point(8, 9)},
31 {ui::kCursorNoDrop, IDR_AURA_CURSOR_NO_DROP,
32 gfx::Point(4, 4), gfx::Point(8, 9)},
33 {ui::kCursorNotAllowed, IDR_AURA_CURSOR_NO_DROP,
34 gfx::Point(4, 4), gfx::Point(8, 9)},
35 {ui::kCursorCopy, IDR_AURA_CURSOR_COPY,
36 gfx::Point(4, 4), gfx::Point(8, 9)},
37 {ui::kCursorHand, IDR_AURA_CURSOR_HAND,
38 gfx::Point(9, 4), gfx::Point(19, 8)},
39 {ui::kCursorMove, IDR_AURA_CURSOR_MOVE,
40 gfx::Point(11, 11), gfx::Point(23, 23)},
41 {ui::kCursorNorthEastResize, IDR_AURA_CURSOR_NORTH_EAST_RESIZE,
42 gfx::Point(12, 11), gfx::Point(25, 23)},
43 {ui::kCursorSouthWestResize, IDR_AURA_CURSOR_SOUTH_WEST_RESIZE,
44 gfx::Point(12, 11), gfx::Point(25, 23)},
45 {ui::kCursorSouthEastResize, IDR_AURA_CURSOR_SOUTH_EAST_RESIZE,
46 gfx::Point(11, 11), gfx::Point(24, 23)},
47 {ui::kCursorNorthWestResize, IDR_AURA_CURSOR_NORTH_WEST_RESIZE,
48 gfx::Point(11, 11), gfx::Point(24, 23)},
49 {ui::kCursorNorthResize, IDR_AURA_CURSOR_NORTH_RESIZE,
50 gfx::Point(11, 12), gfx::Point(23, 23)},
51 {ui::kCursorSouthResize, IDR_AURA_CURSOR_SOUTH_RESIZE,
52 gfx::Point(11, 12), gfx::Point(23, 23)},
53 {ui::kCursorEastResize, IDR_AURA_CURSOR_EAST_RESIZE,
54 gfx::Point(12, 11), gfx::Point(25, 23)},
55 {ui::kCursorWestResize, IDR_AURA_CURSOR_WEST_RESIZE,
56 gfx::Point(12, 11), gfx::Point(25, 23)},
57 {ui::kCursorIBeam, IDR_AURA_CURSOR_IBEAM,
58 gfx::Point(12, 12), gfx::Point(24, 25)},
59 {ui::kCursorAlias, IDR_AURA_CURSOR_ALIAS,
60 gfx::Point(8, 6), gfx::Point(15, 11)},
61 {ui::kCursorCell, IDR_AURA_CURSOR_CELL,
62 gfx::Point(11, 11), gfx::Point(24, 23)},
63 {ui::kCursorContextMenu, IDR_AURA_CURSOR_CONTEXT_MENU,
64 gfx::Point(4, 4), gfx::Point(8, 9)},
65 {ui::kCursorCross, IDR_AURA_CURSOR_CROSSHAIR,
66 gfx::Point(12, 12), gfx::Point(25, 23)},
67 {ui::kCursorHelp, IDR_AURA_CURSOR_HELP,
68 gfx::Point(4, 4), gfx::Point(8, 9)},
69 {ui::kCursorVerticalText, IDR_AURA_CURSOR_XTERM_HORIZ,
70 gfx::Point(12, 11), gfx::Point(26, 23)},
71 {ui::kCursorZoomIn, IDR_AURA_CURSOR_ZOOM_IN,
72 gfx::Point(10, 10), gfx::Point(20, 20)},
73 {ui::kCursorZoomOut, IDR_AURA_CURSOR_ZOOM_OUT,
74 gfx::Point(10, 10), gfx::Point(20, 20)},
75 {ui::kCursorRowResize, IDR_AURA_CURSOR_ROW_RESIZE,
76 gfx::Point(11, 12), gfx::Point(23, 23)},
77 {ui::kCursorColumnResize, IDR_AURA_CURSOR_COL_RESIZE,
78 gfx::Point(12, 11), gfx::Point(25, 23)},
79 {ui::kCursorEastWestResize, IDR_AURA_CURSOR_EAST_WEST_RESIZE,
80 gfx::Point(12, 11), gfx::Point(25, 23)},
81 {ui::kCursorNorthSouthResize, IDR_AURA_CURSOR_NORTH_SOUTH_RESIZE,
82 gfx::Point(11, 12), gfx::Point(23, 23)},
83 {ui::kCursorNorthEastSouthWestResize,
84 IDR_AURA_CURSOR_NORTH_EAST_SOUTH_WEST_RESIZE,
85 gfx::Point(12, 11), gfx::Point(25, 23)},
86 {ui::kCursorNorthWestSouthEastResize,
87 IDR_AURA_CURSOR_NORTH_WEST_SOUTH_EAST_RESIZE,
88 gfx::Point(11, 11), gfx::Point(24, 23)},
89 {ui::kCursorGrab, IDR_AURA_CURSOR_GRAB,
90 gfx::Point(8, 5), gfx::Point(16, 10)},
91 {ui::kCursorGrabbing, IDR_AURA_CURSOR_GRABBING,
92 gfx::Point(9, 9), gfx::Point(18, 18)},
93 };
94
95 const CursorData kAnimatedCursors[] = {
96 {ui::kCursorWait, IDR_THROBBER, gfx::Point(7, 7), gfx::Point(14, 14)},
97 {ui::kCursorProgress, IDR_THROBBER, gfx::Point(7, 7), gfx::Point(14, 14)},
98 };
99
100 } // namespace
101
102 namespace ash {
103
104 ImageCursors::ImageCursors()
105 : cursor_loader_(ui::CursorLoader::Create()) {
106 }
107
108 ImageCursors::~ImageCursors() {
109 }
110
111 float ImageCursors::GetDeviceScaleFactor() const {
112 return cursor_loader_->device_scale_factor();
113 }
114
115 void ImageCursors::SetDeviceScaleFactor(float device_scale_factor) {
116 if (GetDeviceScaleFactor() == device_scale_factor)
117 return;
118
119 cursor_loader_->UnloadAll();
120 cursor_loader_->set_device_scale_factor(device_scale_factor);
121
122 for (size_t i = 0; i < arraysize(kImageCursors); ++i) {
123 const gfx::Point& hot = device_scale_factor == 1.0f ?
124 kImageCursors[i].hot_1x : kImageCursors[i].hot_2x;
125 cursor_loader_->LoadImageCursor(kImageCursors[i].id,
126 kImageCursors[i].resource_id,
127 hot);
128 }
129 for (size_t i = 0; i < arraysize(kAnimatedCursors); ++i) {
130 const gfx::Point& hot = device_scale_factor == 1.0f ?
131 kAnimatedCursors[i].hot_1x : kAnimatedCursors[i].hot_2x;
132 cursor_loader_->LoadAnimatedCursor(kAnimatedCursors[i].id,
133 kAnimatedCursors[i].resource_id,
134 hot,
135 kAnimatedCursorFrameDelayMs);
136 }
137 }
138
139 void ImageCursors::SetPlatformCursor(gfx::NativeCursor* cursor) {
140 cursor_loader_->SetPlatformCursor(cursor);
141 }
142
143 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/image_cursors.h ('k') | ash/wm/toplevel_window_event_filter.cc » ('j') | ui/ui.gyp » ('J')

Powered by Google App Engine
This is Rietveld 408576698