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 #ifndef UI_GFX_NATIVE_WIDGET_TYPES_H_ | 5 #ifndef UI_GFX_NATIVE_WIDGET_TYPES_H_ |
6 #define UI_GFX_NATIVE_WIDGET_TYPES_H_ | 6 #define UI_GFX_NATIVE_WIDGET_TYPES_H_ |
7 | 7 |
8 #include "build/build_config.h" | 8 #include "build/build_config.h" |
9 | 9 |
10 #if defined(OS_ANDROID) | 10 #if defined(OS_ANDROID) |
(...skipping 25 matching lines...) Expand all Loading... |
36 // specific typedef. | 36 // specific typedef. |
37 // | 37 // |
38 // NativeImage: The platform-specific image type used for drawing UI elements | 38 // NativeImage: The platform-specific image type used for drawing UI elements |
39 // in the browser. | 39 // in the browser. |
40 // | 40 // |
41 // The name 'View' here meshes with OS X where the UI elements are called | 41 // The name 'View' here meshes with OS X where the UI elements are called |
42 // 'views' and with our Chrome UI code where the elements are also called | 42 // 'views' and with our Chrome UI code where the elements are also called |
43 // 'views'. | 43 // 'views'. |
44 | 44 |
45 class SkRegion; | 45 class SkRegion; |
| 46 |
46 namespace ui { | 47 namespace ui { |
| 48 class Cursor; |
47 class Event; | 49 class Event; |
48 } | 50 } |
49 | 51 |
50 #if defined(OS_POSIX) | 52 #if defined(OS_WIN) |
51 typedef struct _PangoFontDescription PangoFontDescription; | 53 #include <windows.h> // NOLINT |
| 54 typedef struct HFONT__* HFONT; |
| 55 struct IAccessible; |
| 56 #elif defined(OS_IOS) |
| 57 struct CGContext; |
| 58 #ifdef __OBJC__ |
| 59 @class UIEvent; |
| 60 @class UIFont; |
| 61 @class UIImage; |
| 62 @class UIView; |
| 63 @class UIWindow; |
| 64 @class UITextField; |
| 65 #else |
| 66 class UIEvent; |
| 67 class UIFont; |
| 68 class UIImage; |
| 69 class UIView; |
| 70 class UIWindow; |
| 71 class UITextField; |
| 72 #endif // __OBJC__ |
| 73 #elif defined(OS_MACOSX) |
| 74 struct CGContext; |
| 75 #ifdef __OBJC__ |
| 76 @class NSCursor; |
| 77 @class NSEvent; |
| 78 @class NSFont; |
| 79 @class NSImage; |
| 80 @class NSView; |
| 81 @class NSWindow; |
| 82 @class NSTextField; |
| 83 #else |
| 84 class NSCursor; |
| 85 class NSEvent; |
| 86 class NSFont; |
| 87 class NSImage; |
| 88 struct NSView; |
| 89 class NSWindow; |
| 90 class NSTextField; |
| 91 #endif // __OBJC__ |
| 92 #elif defined(OS_POSIX) |
52 typedef struct _cairo cairo_t; | 93 typedef struct _cairo cairo_t; |
53 #endif | 94 #endif |
54 | 95 |
55 #if defined(OS_ANDROID) | 96 #if defined(OS_ANDROID) |
56 struct ANativeWindow; | 97 struct ANativeWindow; |
57 namespace ui { | 98 namespace ui { |
58 class WindowAndroid; | 99 class WindowAndroid; |
59 class ViewAndroid; | 100 class ViewAndroid; |
60 } | 101 } |
61 #endif | 102 #endif |
62 class SkBitmap; | 103 class SkBitmap; |
63 | 104 |
| 105 #if defined(USE_X11) && !defined(OS_CHROMEOS) |
| 106 extern "C" { |
| 107 struct _AtkObject; |
| 108 typedef struct _AtkObject AtkObject; |
| 109 } |
| 110 #endif |
| 111 |
64 namespace gfx { | 112 namespace gfx { |
65 | 113 |
66 #if defined(OS_LINUX) | 114 #if defined(OS_LINUX) |
67 typedef SkRegion* NativeRegion; | 115 typedef SkRegion* NativeRegion; |
| 116 typedef ui::Cursor NativeCursor; |
| 117 typedef void* NativeView; |
| 118 typedef void* NativeWindow; |
68 typedef ui::Event* NativeEvent; | 119 typedef ui::Event* NativeEvent; |
| 120 #elif defined(OS_IOS) |
| 121 typedef void* NativeCursor; |
| 122 typedef UIView* NativeView; |
| 123 typedef UIWindow* NativeWindow; |
| 124 typedef UIEvent* NativeEvent; |
| 125 #elif defined(OS_MACOSX) |
| 126 typedef NSCursor* NativeCursor; |
| 127 typedef NSView* NativeView; |
| 128 typedef NSWindow* NativeWindow; |
| 129 typedef NSEvent* NativeEvent; |
69 #elif defined(OS_ANDROID) | 130 #elif defined(OS_ANDROID) |
70 typedef void* NativeRegion; | 131 typedef void* NativeRegion; |
| 132 typedef void* NativeCursor; |
| 133 typedef ui::ViewAndroid* NativeView; |
| 134 typedef ui::WindowAndroid* NativeWindow; |
71 typedef jobject NativeEvent; | 135 typedef jobject NativeEvent; |
| 136 #else |
| 137 #error Unknown build environment. |
72 #endif | 138 #endif |
73 | 139 |
| 140 #if defined(OS_WIN) |
| 141 typedef HFONT NativeFont; |
| 142 typedef HWND NativeEditView; |
| 143 typedef HDC NativeDrawingContext; |
| 144 typedef IAccessible* NativeViewAccessible; |
| 145 #elif defined(OS_IOS) |
| 146 typedef UIFont* NativeFont; |
| 147 typedef UITextField* NativeEditView; |
| 148 typedef CGContext* NativeDrawingContext; |
| 149 #ifdef __OBJC__ |
| 150 typedef id NativeViewAccessible; |
| 151 #else |
| 152 typedef void* NativeViewAccessible; |
| 153 #endif // __OBJC__ |
| 154 #elif defined(OS_MACOSX) |
| 155 typedef NSFont* NativeFont; |
| 156 typedef NSTextField* NativeEditView; |
| 157 typedef CGContext* NativeDrawingContext; |
| 158 #ifdef __OBJC__ |
| 159 typedef id NativeViewAccessible; |
| 160 #else |
| 161 typedef void* NativeViewAccessible; |
| 162 #endif // __OBJC__ |
| 163 #else // Android, Linux, Chrome OS, etc. |
| 164 // Linux doesn't have a native font type. |
| 165 typedef void* NativeEditView; |
74 #if defined(USE_CAIRO) | 166 #if defined(USE_CAIRO) |
75 typedef PangoFontDescription* NativeFont; | |
76 typedef void* NativeEditView; | |
77 typedef cairo_t* NativeDrawingContext; | 167 typedef cairo_t* NativeDrawingContext; |
| 168 #else |
| 169 typedef void* NativeDrawingContext; |
| 170 #endif // defined(USE_CAIRO) |
| 171 #if defined(USE_X11) && !defined(OS_CHROMEOS) |
| 172 typedef AtkObject* NativeViewAccessible; |
| 173 #else |
78 typedef void* NativeViewAccessible; | 174 typedef void* NativeViewAccessible; |
79 #else | 175 #endif |
80 typedef void* NativeFont; | |
81 typedef void* NativeEditView; | |
82 typedef void* NativeDrawingContext; | |
83 typedef void* NativeViewAccessible; | |
84 #endif | 176 #endif |
85 | 177 |
86 // A constant value to indicate that gfx::NativeCursor refers to no cursor. | 178 // A constant value to indicate that gfx::NativeCursor refers to no cursor. |
87 #if defined(OS_LINUX) | 179 #if defined(OS_LINUX) |
88 const int kNullCursor = 0; | 180 const int kNullCursor = 0; |
| 181 #else |
| 182 const gfx::NativeCursor kNullCursor = static_cast<gfx::NativeCursor>(NULL); |
89 #endif | 183 #endif |
90 | 184 |
| 185 #if defined(OS_IOS) |
| 186 typedef UIImage NativeImageType; |
| 187 #elif defined(OS_MACOSX) |
| 188 typedef NSImage NativeImageType; |
| 189 #else |
91 typedef SkBitmap NativeImageType; | 190 typedef SkBitmap NativeImageType; |
| 191 #endif |
92 typedef NativeImageType* NativeImage; | 192 typedef NativeImageType* NativeImage; |
93 | 193 |
94 // Note: for test_shell we're packing a pointer into the NativeViewId. So, if | 194 // Note: for test_shell we're packing a pointer into the NativeViewId. So, if |
95 // you make it a type which is smaller than a pointer, you have to fix | 195 // you make it a type which is smaller than a pointer, you have to fix |
96 // test_shell. | 196 // test_shell. |
97 // | 197 // |
98 // See comment at the top of the file for usage. | 198 // See comment at the top of the file for usage. |
99 typedef intptr_t NativeViewId; | 199 typedef intptr_t NativeViewId; |
100 | 200 |
101 // PluginWindowHandle is an abstraction wrapping "the types of windows | 201 // PluginWindowHandle is an abstraction wrapping "the types of windows |
102 // used by NPAPI plugins". On Windows it's an HWND, on X it's an X | 202 // used by NPAPI plugins". On Windows it's an HWND, on X it's an X |
103 // window id. | 203 // window id. |
104 #if defined(USE_X11) | 204 #if defined(OS_WIN) |
| 205 typedef HWND PluginWindowHandle; |
| 206 const PluginWindowHandle kNullPluginWindow = NULL; |
| 207 #elif defined(USE_X11) |
105 typedef unsigned long PluginWindowHandle; | 208 typedef unsigned long PluginWindowHandle; |
106 const PluginWindowHandle kNullPluginWindow = 0; | 209 const PluginWindowHandle kNullPluginWindow = 0; |
107 #elif defined(OS_ANDROID) | 210 #elif defined(OS_ANDROID) |
108 typedef uint64 PluginWindowHandle; | 211 typedef uint64 PluginWindowHandle; |
109 const PluginWindowHandle kNullPluginWindow = 0; | 212 const PluginWindowHandle kNullPluginWindow = 0; |
110 #elif defined(USE_OZONE) | 213 #elif defined(USE_OZONE) |
111 typedef intptr_t PluginWindowHandle; | 214 typedef intptr_t PluginWindowHandle; |
112 const PluginWindowHandle kNullPluginWindow = 0; | 215 const PluginWindowHandle kNullPluginWindow = 0; |
113 #else | 216 #else |
114 // On Mac we don't have windowed plugins. We use a NULL/0 PluginWindowHandle | 217 // On Mac we don't have windowed plugins. We use a NULL/0 PluginWindowHandle |
(...skipping 26 matching lines...) Expand all Loading... |
141 bool is_null() const { return transport_type == EMPTY; } | 244 bool is_null() const { return transport_type == EMPTY; } |
142 bool is_transport() const { | 245 bool is_transport() const { |
143 return transport_type == NULL_TRANSPORT; | 246 return transport_type == NULL_TRANSPORT; |
144 } | 247 } |
145 PluginWindowHandle handle; | 248 PluginWindowHandle handle; |
146 SurfaceType transport_type; | 249 SurfaceType transport_type; |
147 uint32 parent_client_id; | 250 uint32 parent_client_id; |
148 }; | 251 }; |
149 | 252 |
150 // AcceleratedWidget provides a surface to compositors to paint pixels. | 253 // AcceleratedWidget provides a surface to compositors to paint pixels. |
151 #if defined(USE_X11) | 254 #if defined(OS_WIN) |
| 255 typedef HWND AcceleratedWidget; |
| 256 const AcceleratedWidget kNullAcceleratedWidget = NULL; |
| 257 #elif defined(USE_X11) |
152 typedef unsigned long AcceleratedWidget; | 258 typedef unsigned long AcceleratedWidget; |
153 const AcceleratedWidget kNullAcceleratedWidget = 0; | 259 const AcceleratedWidget kNullAcceleratedWidget = 0; |
| 260 #elif defined(OS_IOS) |
| 261 typedef UIView* AcceleratedWidget; |
| 262 const AcceleratedWidget kNullAcceleratedWidget = 0; |
| 263 #elif defined(OS_MACOSX) |
| 264 typedef NSView* AcceleratedWidget; |
| 265 const AcceleratedWidget kNullAcceleratedWidget = 0; |
154 #elif defined(OS_ANDROID) | 266 #elif defined(OS_ANDROID) |
155 typedef ANativeWindow* AcceleratedWidget; | 267 typedef ANativeWindow* AcceleratedWidget; |
156 const AcceleratedWidget kNullAcceleratedWidget = 0; | 268 const AcceleratedWidget kNullAcceleratedWidget = 0; |
157 #elif defined(USE_OZONE) | 269 #elif defined(USE_OZONE) |
158 typedef intptr_t AcceleratedWidget; | 270 typedef intptr_t AcceleratedWidget; |
159 const AcceleratedWidget kNullAcceleratedWidget = 0; | 271 const AcceleratedWidget kNullAcceleratedWidget = 0; |
160 #elif defined(OS_IOS) | 272 #elif defined(OS_IOS) |
161 typedef uintptr_t AcceleratedWidget; | 273 typedef uintptr_t AcceleratedWidget; |
162 const AcceleratedWidget kNullAcceleratedWidget = 0; | 274 const AcceleratedWidget kNullAcceleratedWidget = 0; |
163 #elif defined(OS_MACOSX) | 275 #elif defined(OS_MACOSX) |
164 typedef uintptr_t AcceleratedWidget; | 276 typedef uintptr_t AcceleratedWidget; |
165 const AcceleratedWidget kNullAcceleratedWidget = 0; | 277 const AcceleratedWidget kNullAcceleratedWidget = 0; |
166 #else | 278 #else |
167 #error unknown platform | 279 #error unknown platform |
168 #endif | 280 #endif |
169 | 281 |
170 } // namespace gfx | 282 } // namespace gfx |
171 | 283 |
172 #endif // UI_GFX_NATIVE_WIDGET_TYPES_H_ | 284 #endif // UI_GFX_NATIVE_WIDGET_TYPES_H_ |
OLD | NEW |