| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef UI_GFX_WIN_HWND_UTIL_H_ |
| #define UI_GFX_WIN_HWND_UTIL_H_ |
| |
| #include <windows.h> |
| |
| #include "base/strings/string16.h" |
| #include "ui/gfx/gfx_export.h" |
| |
| namespace gfx { |
| class Point; |
| class Size; |
| |
| // A version of the GetClassNameW API that returns the class name in an |
| // base::string16. An empty result indicates a failure to get the class name. |
| GFX_EXPORT base::string16 GetClassName(HWND hwnd); |
| |
| // Useful for subclassing a HWND. Returns the previous window procedure. |
| GFX_EXPORT WNDPROC SetWindowProc(HWND hwnd, WNDPROC wndproc); |
| |
| // Pointer-friendly wrappers around Get/SetWindowLong(..., GWLP_USERDATA, ...) |
| // Returns the previously set value. |
| GFX_EXPORT void* SetWindowUserData(HWND hwnd, void* user_data); |
| GFX_EXPORT void* GetWindowUserData(HWND hwnd); |
| |
| // Returns true if the specified window is the current active top window or one |
| // of its children. |
| GFX_EXPORT bool DoesWindowBelongToActiveWindow(HWND window); |
| |
| // Sizes the window to have a window size of |pref|, then centers the window |
| // over |parent|, ensuring the window fits on screen. |
| GFX_EXPORT void CenterAndSizeWindow(HWND parent, |
| HWND window, |
| const gfx::Size& pref); |
| |
| // If |hwnd| is NULL logs various thing and CHECKs. Invoke right after calling |
| // CreateWindow. |
| GFX_EXPORT void CheckWindowCreated(HWND hwnd); |
| |
| // Shows |window|'s system menu (at a specified |point| in screen coordinates). |
| GFX_EXPORT void ShowSystemMenu(HWND window); |
| GFX_EXPORT void ShowSystemMenuAtPoint(HWND window, const gfx::Point& point); |
| |
| // Returns the window you can use to parent a top level window. |
| // Note that in some cases we create child windows not parented to its final |
| // container so in those cases you should pass true in |get_real_hwnd|. |
| GFX_EXPORT HWND GetWindowToParentTo(bool get_real_hwnd); |
| |
| } // namespace gfx |
| |
| #endif // UI_GFX_WIN_HWND_UTIL_H_ |