OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/base/cursor/cursor_loader_win.h" | 5 #include "ui/base/cursor/cursor_loader_win.h" |
6 | 6 |
7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
8 #include "base/strings/string16.h" | 8 #include "base/strings/string16.h" |
9 #include "ui/base/cursor/cursor.h" | 9 #include "ui/base/cursor/cursor.h" |
10 #include "ui/resources/grit/ui_unscaled_resources.h" | 10 #include "ui/resources/grit/ui_unscaled_resources.h" |
11 | 11 |
12 namespace ui { | 12 namespace ui { |
13 | 13 |
14 namespace { | 14 namespace { |
15 | 15 |
16 base::LazyInstance<base::string16>::DestructorAtExit | 16 base::LazyInstance<base::string16>::DestructorAtExit |
17 g_cursor_resource_module_name; | 17 g_cursor_resource_module_name; |
18 | 18 |
19 const wchar_t* GetCursorId(gfx::NativeCursor native_cursor) { | 19 const wchar_t* GetCursorId(gfx::NativeCursor native_cursor) { |
20 switch (native_cursor.native_type()) { | 20 switch (native_cursor.native_type()) { |
21 case kCursorNull: | 21 case CursorType::kNull: |
22 return IDC_ARROW; | 22 return IDC_ARROW; |
23 case kCursorPointer: | 23 case CursorType::kPointer: |
24 return IDC_ARROW; | 24 return IDC_ARROW; |
25 case kCursorCross: | 25 case CursorType::kCross: |
26 return IDC_CROSS; | 26 return IDC_CROSS; |
27 case kCursorHand: | 27 case CursorType::kHand: |
28 return IDC_HAND; | 28 return IDC_HAND; |
29 case kCursorIBeam: | 29 case CursorType::kIBeam: |
30 return IDC_IBEAM; | 30 return IDC_IBEAM; |
31 case kCursorWait: | 31 case CursorType::kWait: |
32 return IDC_WAIT; | 32 return IDC_WAIT; |
33 case kCursorHelp: | 33 case CursorType::kHelp: |
34 return IDC_HELP; | 34 return IDC_HELP; |
35 case kCursorEastResize: | 35 case CursorType::kEastResize: |
36 return IDC_SIZEWE; | 36 return IDC_SIZEWE; |
37 case kCursorNorthResize: | 37 case CursorType::kNorthResize: |
38 return IDC_SIZENS; | 38 return IDC_SIZENS; |
39 case kCursorNorthEastResize: | 39 case CursorType::kNorthEastResize: |
40 return IDC_SIZENESW; | 40 return IDC_SIZENESW; |
41 case kCursorNorthWestResize: | 41 case CursorType::kNorthWestResize: |
42 return IDC_SIZENWSE; | 42 return IDC_SIZENWSE; |
43 case kCursorSouthResize: | 43 case CursorType::kSouthResize: |
44 return IDC_SIZENS; | 44 return IDC_SIZENS; |
45 case kCursorSouthEastResize: | 45 case CursorType::kSouthEastResize: |
46 return IDC_SIZENWSE; | 46 return IDC_SIZENWSE; |
47 case kCursorSouthWestResize: | 47 case CursorType::kSouthWestResize: |
48 return IDC_SIZENESW; | 48 return IDC_SIZENESW; |
49 case kCursorWestResize: | 49 case CursorType::kWestResize: |
50 return IDC_SIZEWE; | 50 return IDC_SIZEWE; |
51 case kCursorNorthSouthResize: | 51 case CursorType::kNorthSouthResize: |
52 return IDC_SIZENS; | 52 return IDC_SIZENS; |
53 case kCursorEastWestResize: | 53 case CursorType::kEastWestResize: |
54 return IDC_SIZEWE; | 54 return IDC_SIZEWE; |
55 case kCursorNorthEastSouthWestResize: | 55 case CursorType::kNorthEastSouthWestResize: |
56 return IDC_SIZENESW; | 56 return IDC_SIZENESW; |
57 case kCursorNorthWestSouthEastResize: | 57 case CursorType::kNorthWestSouthEastResize: |
58 return IDC_SIZENWSE; | 58 return IDC_SIZENWSE; |
59 case kCursorMove: | 59 case CursorType::kMove: |
60 return IDC_SIZEALL; | 60 return IDC_SIZEALL; |
61 case kCursorProgress: | 61 case CursorType::kProgress: |
62 return IDC_APPSTARTING; | 62 return IDC_APPSTARTING; |
63 case kCursorNoDrop: | 63 case CursorType::kNoDrop: |
64 return IDC_NO; | 64 return IDC_NO; |
65 case kCursorNotAllowed: | 65 case CursorType::kNotAllowed: |
66 return IDC_NO; | 66 return IDC_NO; |
67 case kCursorColumnResize: | 67 case CursorType::kColumnResize: |
68 return MAKEINTRESOURCE(IDC_COLRESIZE); | 68 return MAKEINTRESOURCE(IDC_COLRESIZE); |
69 case kCursorRowResize: | 69 case CursorType::kRowResize: |
70 return MAKEINTRESOURCE(IDC_ROWRESIZE); | 70 return MAKEINTRESOURCE(IDC_ROWRESIZE); |
71 case kCursorMiddlePanning: | 71 case CursorType::kMiddlePanning: |
72 return MAKEINTRESOURCE(IDC_PAN_MIDDLE); | 72 return MAKEINTRESOURCE(IDC_PAN_MIDDLE); |
73 case kCursorEastPanning: | 73 case CursorType::kEastPanning: |
74 return MAKEINTRESOURCE(IDC_PAN_EAST); | 74 return MAKEINTRESOURCE(IDC_PAN_EAST); |
75 case kCursorNorthPanning: | 75 case CursorType::kNorthPanning: |
76 return MAKEINTRESOURCE(IDC_PAN_NORTH); | 76 return MAKEINTRESOURCE(IDC_PAN_NORTH); |
77 case kCursorNorthEastPanning: | 77 case CursorType::kNorthEastPanning: |
78 return MAKEINTRESOURCE(IDC_PAN_NORTH_EAST); | 78 return MAKEINTRESOURCE(IDC_PAN_NORTH_EAST); |
79 case kCursorNorthWestPanning: | 79 case CursorType::kNorthWestPanning: |
80 return MAKEINTRESOURCE(IDC_PAN_NORTH_WEST); | 80 return MAKEINTRESOURCE(IDC_PAN_NORTH_WEST); |
81 case kCursorSouthPanning: | 81 case CursorType::kSouthPanning: |
82 return MAKEINTRESOURCE(IDC_PAN_SOUTH); | 82 return MAKEINTRESOURCE(IDC_PAN_SOUTH); |
83 case kCursorSouthEastPanning: | 83 case CursorType::kSouthEastPanning: |
84 return MAKEINTRESOURCE(IDC_PAN_SOUTH_EAST); | 84 return MAKEINTRESOURCE(IDC_PAN_SOUTH_EAST); |
85 case kCursorSouthWestPanning: | 85 case CursorType::kSouthWestPanning: |
86 return MAKEINTRESOURCE(IDC_PAN_SOUTH_WEST); | 86 return MAKEINTRESOURCE(IDC_PAN_SOUTH_WEST); |
87 case kCursorWestPanning: | 87 case CursorType::kWestPanning: |
88 return MAKEINTRESOURCE(IDC_PAN_WEST); | 88 return MAKEINTRESOURCE(IDC_PAN_WEST); |
89 case kCursorVerticalText: | 89 case CursorType::kVerticalText: |
90 return MAKEINTRESOURCE(IDC_VERTICALTEXT); | 90 return MAKEINTRESOURCE(IDC_VERTICALTEXT); |
91 case kCursorCell: | 91 case CursorType::kCell: |
92 return MAKEINTRESOURCE(IDC_CELL); | 92 return MAKEINTRESOURCE(IDC_CELL); |
93 case kCursorZoomIn: | 93 case CursorType::kZoomIn: |
94 return MAKEINTRESOURCE(IDC_ZOOMIN); | 94 return MAKEINTRESOURCE(IDC_ZOOMIN); |
95 case kCursorZoomOut: | 95 case CursorType::kZoomOut: |
96 return MAKEINTRESOURCE(IDC_ZOOMOUT); | 96 return MAKEINTRESOURCE(IDC_ZOOMOUT); |
97 case kCursorGrab: | 97 case CursorType::kGrab: |
98 return MAKEINTRESOURCE(IDC_HAND_GRAB); | 98 return MAKEINTRESOURCE(IDC_HAND_GRAB); |
99 case kCursorGrabbing: | 99 case CursorType::kGrabbing: |
100 return MAKEINTRESOURCE(IDC_HAND_GRABBING); | 100 return MAKEINTRESOURCE(IDC_HAND_GRABBING); |
101 case kCursorCopy: | 101 case CursorType::kCopy: |
102 return MAKEINTRESOURCE(IDC_COPYCUR); | 102 return MAKEINTRESOURCE(IDC_COPYCUR); |
103 case kCursorAlias: | 103 case CursorType::kAlias: |
104 return MAKEINTRESOURCE(IDC_ALIAS); | 104 return MAKEINTRESOURCE(IDC_ALIAS); |
105 case kCursorNone: | 105 case CursorType::kNone: |
106 return MAKEINTRESOURCE(IDC_CURSOR_NONE); | 106 return MAKEINTRESOURCE(IDC_CURSOR_NONE); |
107 case kCursorContextMenu: | 107 case CursorType::kContextMenu: |
108 case kCursorCustom: | 108 case CursorType::kCustom: |
109 NOTIMPLEMENTED(); | 109 NOTIMPLEMENTED(); |
110 return IDC_ARROW; | 110 return IDC_ARROW; |
111 default: | 111 default: |
112 NOTREACHED(); | 112 NOTREACHED(); |
113 return IDC_ARROW; | 113 return IDC_ARROW; |
114 } | 114 } |
115 } | 115 } |
116 | 116 |
117 } // namespace | 117 } // namespace |
118 | 118 |
119 CursorLoader* CursorLoader::Create() { | 119 CursorLoader* CursorLoader::Create() { |
120 return new CursorLoaderWin; | 120 return new CursorLoaderWin; |
121 } | 121 } |
122 | 122 |
123 CursorLoaderWin::CursorLoaderWin() { | 123 CursorLoaderWin::CursorLoaderWin() { |
124 } | 124 } |
125 | 125 |
126 CursorLoaderWin::~CursorLoaderWin() { | 126 CursorLoaderWin::~CursorLoaderWin() { |
127 } | 127 } |
128 | 128 |
129 void CursorLoaderWin::LoadImageCursor(int id, | 129 void CursorLoaderWin::LoadImageCursor(CursorType id, |
130 int resource_id, | 130 int resource_id, |
131 const gfx::Point& hot) { | 131 const gfx::Point& hot) { |
132 // NOTIMPLEMENTED(); | 132 // NOTIMPLEMENTED(); |
133 } | 133 } |
134 | 134 |
135 void CursorLoaderWin::LoadAnimatedCursor(int id, | 135 void CursorLoaderWin::LoadAnimatedCursor(CursorType id, |
136 int resource_id, | 136 int resource_id, |
137 const gfx::Point& hot, | 137 const gfx::Point& hot, |
138 int frame_delay_ms) { | 138 int frame_delay_ms) { |
139 // NOTIMPLEMENTED(); | 139 // NOTIMPLEMENTED(); |
140 } | 140 } |
141 | 141 |
142 void CursorLoaderWin::UnloadAll() { | 142 void CursorLoaderWin::UnloadAll() { |
143 // NOTIMPLEMENTED(); | 143 // NOTIMPLEMENTED(); |
144 } | 144 } |
145 | 145 |
146 void CursorLoaderWin::SetPlatformCursor(gfx::NativeCursor* cursor) { | 146 void CursorLoaderWin::SetPlatformCursor(gfx::NativeCursor* cursor) { |
147 if (cursor->native_type() != kCursorCustom) { | 147 if (cursor->native_type() != CursorType::kCustom) { |
148 if (cursor->platform()) { | 148 if (cursor->platform()) { |
149 cursor->SetPlatformCursor(cursor->platform()); | 149 cursor->SetPlatformCursor(cursor->platform()); |
150 } else { | 150 } else { |
151 const wchar_t* cursor_id = GetCursorId(*cursor); | 151 const wchar_t* cursor_id = GetCursorId(*cursor); |
152 PlatformCursor platform_cursor = LoadCursor(NULL, cursor_id); | 152 PlatformCursor platform_cursor = LoadCursor(NULL, cursor_id); |
153 if (!platform_cursor && !g_cursor_resource_module_name.Get().empty()) { | 153 if (!platform_cursor && !g_cursor_resource_module_name.Get().empty()) { |
154 platform_cursor = LoadCursor( | 154 platform_cursor = LoadCursor( |
155 GetModuleHandle(g_cursor_resource_module_name.Get().c_str()), | 155 GetModuleHandle(g_cursor_resource_module_name.Get().c_str()), |
156 cursor_id); | 156 cursor_id); |
157 } | 157 } |
158 cursor->SetPlatformCursor(platform_cursor); | 158 cursor->SetPlatformCursor(platform_cursor); |
159 } | 159 } |
160 } | 160 } |
161 } | 161 } |
162 | 162 |
163 // static | 163 // static |
164 void CursorLoaderWin::SetCursorResourceModule( | 164 void CursorLoaderWin::SetCursorResourceModule( |
165 const base::string16& module_name) { | 165 const base::string16& module_name) { |
166 g_cursor_resource_module_name.Get() = module_name; | 166 g_cursor_resource_module_name.Get() = module_name; |
167 } | 167 } |
168 | 168 |
169 } // namespace ui | 169 } // namespace ui |
OLD | NEW |