OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 "chrome/common/win_util.h" | 5 #include "chrome/common/win_util.h" |
6 | 6 |
7 #include <atlbase.h> | 7 #include <atlbase.h> |
8 #include <atlapp.h> | 8 #include <atlapp.h> |
9 #include <commdlg.h> | 9 #include <commdlg.h> |
10 #include <dwmapi.h> | 10 #include <dwmapi.h> |
(...skipping 10 matching lines...) Expand all Loading... |
21 #include "base/win_util.h" | 21 #include "base/win_util.h" |
22 #include "chrome/common/l10n_util.h" | 22 #include "chrome/common/l10n_util.h" |
23 #include "grit/generated_resources.h" | 23 #include "grit/generated_resources.h" |
24 #include "net/base/mime_util.h" | 24 #include "net/base/mime_util.h" |
25 | 25 |
26 // Ensure that we pick up this link library. | 26 // Ensure that we pick up this link library. |
27 #pragma comment(lib, "dwmapi.lib") | 27 #pragma comment(lib, "dwmapi.lib") |
28 | 28 |
29 namespace win_util { | 29 namespace win_util { |
30 | 30 |
| 31 const int kAutoHideTaskbarThicknessPx = 2; |
| 32 |
31 namespace { | 33 namespace { |
32 | 34 |
33 // Enforce visible dialog box. | 35 // Enforce visible dialog box. |
34 UINT_PTR CALLBACK SaveAsDialogHook(HWND dialog, UINT message, | 36 UINT_PTR CALLBACK SaveAsDialogHook(HWND dialog, UINT message, |
35 WPARAM wparam, LPARAM lparam) { | 37 WPARAM wparam, LPARAM lparam) { |
36 static const UINT kPrivateMessage = 0x2F3F; | 38 static const UINT kPrivateMessage = 0x2F3F; |
37 switch (message) { | 39 switch (message) { |
38 case WM_INITDIALOG: { | 40 case WM_INITDIALOG: { |
39 // Do nothing here. Just post a message to defer actual processing. | 41 // Do nothing here. Just post a message to defer actual processing. |
40 PostMessage(dialog, kPrivateMessage, 0, 0); | 42 PostMessage(dialog, kPrivateMessage, 0, 0); |
(...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
617 SetWindowPos(window, 0, window_bounds.left, window_bounds.top, | 619 SetWindowPos(window, 0, window_bounds.left, window_bounds.top, |
618 window_bounds.right - window_bounds.left, | 620 window_bounds.right - window_bounds.left, |
619 window_bounds.bottom - window_bounds.top, | 621 window_bounds.bottom - window_bounds.top, |
620 SWP_NOACTIVATE | SWP_NOZORDER); | 622 SWP_NOACTIVATE | SWP_NOZORDER); |
621 } // else case, AdjustWindowToFit set the bounds for us. | 623 } // else case, AdjustWindowToFit set the bounds for us. |
622 } else { | 624 } else { |
623 NOTREACHED() << "Unable to adjust window to fit"; | 625 NOTREACHED() << "Unable to adjust window to fit"; |
624 } | 626 } |
625 } | 627 } |
626 | 628 |
| 629 bool EdgeHasAutoHideTaskbar(UINT edge, HMONITOR monitor) { |
| 630 APPBARDATA taskbar_data = { 0 }; |
| 631 taskbar_data.cbSize = sizeof APPBARDATA; |
| 632 taskbar_data.uEdge = edge; |
| 633 HWND taskbar = reinterpret_cast<HWND>(SHAppBarMessage(ABM_GETAUTOHIDEBAR, |
| 634 &taskbar_data)); |
| 635 return ::IsWindow(taskbar) && |
| 636 (MonitorFromWindow(taskbar, MONITOR_DEFAULTTONEAREST) == monitor); |
| 637 } |
| 638 |
627 HANDLE GetSectionFromProcess(HANDLE section, HANDLE process, bool read_only) { | 639 HANDLE GetSectionFromProcess(HANDLE section, HANDLE process, bool read_only) { |
628 HANDLE valid_section = NULL; | 640 HANDLE valid_section = NULL; |
629 DWORD access = STANDARD_RIGHTS_REQUIRED | FILE_MAP_READ; | 641 DWORD access = STANDARD_RIGHTS_REQUIRED | FILE_MAP_READ; |
630 if (!read_only) | 642 if (!read_only) |
631 access |= FILE_MAP_WRITE; | 643 access |= FILE_MAP_WRITE; |
632 DuplicateHandle(process, section, GetCurrentProcess(), &valid_section, access, | 644 DuplicateHandle(process, section, GetCurrentProcess(), &valid_section, access, |
633 FALSE, 0); | 645 FALSE, 0); |
634 return valid_section; | 646 return valid_section; |
635 } | 647 } |
636 | 648 |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
897 } | 909 } |
898 | 910 |
899 ChromeFont GetWindowTitleFont() { | 911 ChromeFont GetWindowTitleFont() { |
900 NONCLIENTMETRICS ncm; | 912 NONCLIENTMETRICS ncm; |
901 win_util::GetNonClientMetrics(&ncm); | 913 win_util::GetNonClientMetrics(&ncm); |
902 ScopedHFONT caption_font(CreateFontIndirect(&(ncm.lfCaptionFont))); | 914 ScopedHFONT caption_font(CreateFontIndirect(&(ncm.lfCaptionFont))); |
903 return ChromeFont::CreateFont(caption_font); | 915 return ChromeFont::CreateFont(caption_font); |
904 } | 916 } |
905 | 917 |
906 } // namespace win_util | 918 } // namespace win_util |
OLD | NEW |