OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef UI_BASE_WIN_SCOPED_SET_MAP_MODE_H_ | |
6 #define UI_BASE_WIN_SCOPED_SET_MAP_MODE_H_ | |
7 | |
8 #include <windows.h> | |
9 | |
10 #include "base/basictypes.h" | |
11 #include "base/logging.h" | |
12 | |
13 namespace ui { | |
14 | |
15 // Helper class for setting and restore the map mode on a DC. | |
16 class ScopedSetMapMode { | |
17 public: | |
18 ScopedSetMapMode(HDC hdc, int map_mode) | |
19 : hdc_(hdc), | |
20 old_map_mode_(SetMapMode(hdc, map_mode)) { | |
21 DCHECK(hdc_); | |
22 DCHECK_NE(map_mode, 0); | |
23 DCHECK_NE(old_map_mode_, 0); | |
24 } | |
25 | |
26 ~ScopedSetMapMode() { | |
27 const int mode = SetMapMode(hdc_, old_map_mode_); | |
28 DCHECK_NE(mode, 0); | |
29 } | |
30 | |
31 private: | |
32 HDC hdc_; | |
33 int old_map_mode_; | |
34 | |
35 DISALLOW_COPY_AND_ASSIGN(ScopedSetMapMode); | |
36 }; | |
37 | |
38 } // namespace ui | |
39 | |
40 #endif // UI_BASE_WIN_SCOPED_SET_MAP_MODE_H_ | |
OLD | NEW |