| Index: base/gfx/native_widget_types.h
|
| diff --git a/base/gfx/native_widget_types.h b/base/gfx/native_widget_types.h
|
| index 1f696b06e56b67e67110b27659438ffcdafadae0..95e2292d845879a3c62f6dc4a0d1474df6f75f10 100644
|
| --- a/base/gfx/native_widget_types.h
|
| +++ b/base/gfx/native_widget_types.h
|
| @@ -5,14 +5,29 @@
|
| #ifndef BASE_GFX_NATIVE_WIDGET_TYPES_H_
|
| #define BASE_GFX_NATIVE_WIDGET_TYPES_H_
|
|
|
| +#include "base/basictypes.h"
|
| #include "build/build_config.h"
|
|
|
| // This file provides cross platform typedefs for native widget types.
|
| // NativeWindow: this is a handle to a native, top-level window
|
| // NativeView: this is a handle to a native UI element. It may be the
|
| // same type as a NativeWindow on some platforms.
|
| -// NativeEditView: a handle to a native edit-box. The Mac folks wanted
|
| -// this specific typedef.
|
| +// NativeViewId: Often, in our cross process model, we need to pass around a
|
| +// reference to a "window". This reference will, say, be echoed back from a
|
| +// renderer to the browser when it wishes to query it's size. On Windows, a
|
| +// HWND can be used for this. On other platforms, we may wish to pass
|
| +// around X window ids, or maybe abstract identifiers.
|
| +//
|
| +// As a rule of thumb - if you're in the renderer, you should be dealing
|
| +// with NativeViewIds. This should remind you that you shouldn't be doing
|
| +// direct operations on platform widgets from the renderer process.
|
| +//
|
| +// If you're in the browser, you're probably dealing with NativeViews,
|
| +// unless you're in the IPC layer, which will be translating between
|
| +// NativeViewIds from the renderer and NativeViews.
|
| +//
|
| +// NativeEditView: a handle to a native edit-box. The Mac folks wanted this
|
| +// specific typedef.
|
| //
|
| // The name 'View' here meshes with OS X where the UI elements are called
|
| // 'views' and with our Chrome UI code where the elements are also called
|
| @@ -52,6 +67,31 @@ typedef GtkWidget* NativeEditView;
|
| #error No known OS defined
|
| #endif
|
|
|
| +// Note: for test_shell we're packing a pointer into the NativeViewId. So, if
|
| +// you make it a type which is smaller than a pointer, you have to fix
|
| +// test_shell.
|
| +//
|
| +// See comment at the top of the file for usage.
|
| +typedef intptr_t NativeViewId;
|
| +
|
| +// Convert a NativeViewId to a NativeView. At the moment, we assume that the
|
| +// ids are the same as the NativeViews. This is correct on Windows (where
|
| +// NativeView == HWND).
|
| +// TODO(port): figure out what ids are going to be and implement this function
|
| +// This is only to be called in the browser process.
|
| +static inline NativeView NativeViewFromId(NativeViewId id) {
|
| + return reinterpret_cast<NativeView>(id);
|
| +}
|
| +
|
| +// Convert a NativeView to a NativeViewId. At the moment, we assume that the
|
| +// ids are the same as the NativeViews. This is correct on Windows (where
|
| +// NativeView == HWND).
|
| +// TODO(port): figure out what ids are going to be and implement this function
|
| +// This is only to be called in the browser process.
|
| +static inline NativeViewId IdFromNativeView(NativeView view) {
|
| + return reinterpret_cast<NativeViewId>(view);
|
| +}
|
| +
|
| } // namespace gfx
|
|
|
| #endif // BASE_GFX_NATIVE_WIDGET_TYPES_H_
|
|
|