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

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: Move HideHostCursor to x11_util.{cc,h} 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
« no previous file with comments | « ash/wm/image_cursors.h ('k') | ash/wm/toplevel_window_event_filter.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 const int kAnimatedCursorFrameDelayMs = 25;
15
16 struct CursorData {
17 int id;
18 int resource_id;
19 int hot_x;
20 int hot_y;
21 };
22
23 // The cursor's hot points are defined in chromeos cursor images at:
24 // http://folder/kuscher/projects/Chrome_OS/Pointers/focuspoint
25 const CursorData kImageCursors[] = {
26 {ui::kCursorNull, IDR_AURA_CURSOR_PTR, 8, 3},
oshima 2012/09/07 19:52:02 hot points differs between scale factors. See root
mazda 2012/09/07 22:38:14 Ugh, root_window_host_linux.cc was updated while I
27 {ui::kCursorPointer, IDR_AURA_CURSOR_PTR, 8, 3},
28 {ui::kCursorNoDrop, IDR_AURA_CURSOR_NO_DROP, 3, 1},
29 {ui::kCursorNotAllowed, IDR_AURA_CURSOR_NO_DROP, 3, 1},
30 {ui::kCursorCopy, IDR_AURA_CURSOR_COPY, 3, 1},
31 {ui::kCursorHand, IDR_AURA_CURSOR_HAND, 9, 3},
32 {ui::kCursorMove, IDR_AURA_CURSOR_MOVE, 11, 11},
33 {ui::kCursorNorthEastResize, IDR_AURA_CURSOR_NORTH_EAST_RESIZE, 12, 11},
34 {ui::kCursorSouthWestResize, IDR_AURA_CURSOR_SOUTH_WEST_RESIZE, 12, 11},
35 {ui::kCursorSouthEastResize, IDR_AURA_CURSOR_SOUTH_EAST_RESIZE, 11, 11},
36 {ui::kCursorNorthWestResize, IDR_AURA_CURSOR_NORTH_WEST_RESIZE, 11, 11},
37 {ui::kCursorNorthResize, IDR_AURA_CURSOR_NORTH_RESIZE, 11, 10},
38 {ui::kCursorSouthResize, IDR_AURA_CURSOR_SOUTH_RESIZE, 11, 11},
39 {ui::kCursorEastResize, IDR_AURA_CURSOR_EAST_RESIZE, 11, 11},
40 {ui::kCursorWestResize, IDR_AURA_CURSOR_WEST_RESIZE, 11, 11},
41 {ui::kCursorIBeam, IDR_AURA_CURSOR_IBEAM, 12, 12},
42 {ui::kCursorAlias, IDR_AURA_CURSOR_ALIAS, 8, 5},
43 {ui::kCursorCell, IDR_AURA_CURSOR_CELL, 12, 11},
44 {ui::kCursorContextMenu, IDR_AURA_CURSOR_CONTEXT_MENU, 3, 1},
45 {ui::kCursorCross, IDR_AURA_CURSOR_CROSSHAIR, 12, 11},
46 {ui::kCursorHelp, IDR_AURA_CURSOR_HELP, 3, 1},
47 {ui::kCursorVerticalText, IDR_AURA_CURSOR_XTERM_HORIZ, 12, 12},
48 {ui::kCursorZoomIn, IDR_AURA_CURSOR_ZOOM_IN, 12, 12},
49 {ui::kCursorZoomOut, IDR_AURA_CURSOR_ZOOM_OUT, 11, 11},
50 {ui::kCursorRowResize, IDR_AURA_CURSOR_ROW_RESIZE, 11, 11},
51 {ui::kCursorColumnResize, IDR_AURA_CURSOR_COL_RESIZE, 11, 11},
52 {ui::kCursorEastWestResize, IDR_AURA_CURSOR_EAST_WEST_RESIZE, 11, 11},
53 {ui::kCursorNorthSouthResize, IDR_AURA_CURSOR_NORTH_SOUTH_RESIZE, 11, 11},
54 {ui::kCursorNorthEastSouthWestResize,
55 IDR_AURA_CURSOR_NORTH_EAST_SOUTH_WEST_RESIZE, 12, 11},
56 {ui::kCursorNorthWestSouthEastResize,
57 IDR_AURA_CURSOR_NORTH_WEST_SOUTH_EAST_RESIZE, 11, 11},
58 };
59
60 const CursorData kAnimatedCursors[] = {
61 {ui::kCursorWait, IDR_THROBBER, 7, 7},
62 {ui::kCursorProgress, IDR_THROBBER, 7, 7},
63 };
64
65 } // namespace
66
67 namespace ash {
68
69 ImageCursors::ImageCursors()
70 : cursor_loader_(ui::CursorLoader::Create()) {
71 }
72
73 ImageCursors::~ImageCursors() {
74 }
75
76 float ImageCursors::GetDeviceScaleFactor() const {
77 return cursor_loader_->device_scale_factor();
78 }
79
80 void ImageCursors::SetDeviceScaleFactor(float device_scale_factor) {
81 if (GetDeviceScaleFactor() == device_scale_factor)
82 return;
83
84 cursor_loader_->UnloadAll();
85 cursor_loader_->set_device_scale_factor(device_scale_factor);
86
87 for (size_t i = 0; i < arraysize(kImageCursors); ++i) {
88 cursor_loader_->LoadImageCursor(kImageCursors[i].id,
89 kImageCursors[i].resource_id,
90 kImageCursors[i].hot_x,
91 kImageCursors[i].hot_y);
92 }
93 for (size_t i = 0; i < arraysize(kAnimatedCursors); ++i) {
94 cursor_loader_->LoadAnimatedCursor(kAnimatedCursors[i].id,
95 kAnimatedCursors[i].resource_id,
96 kAnimatedCursors[i].hot_x,
97 kAnimatedCursors[i].hot_y,
98 kAnimatedCursorFrameDelayMs);
99 }
100 }
101
102 void ImageCursors::SetPlatformCursor(gfx::NativeCursor* cursor) {
103 cursor_loader_->SetPlatformCursor(cursor);
104 }
105
106 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/image_cursors.h ('k') | ash/wm/toplevel_window_event_filter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698