| // Copyright 2015 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_BASE_COCOA_SCOPED_CG_CONTEXT_SMOOTH_FONTS_H_ |
| #define UI_BASE_COCOA_SCOPED_CG_CONTEXT_SMOOTH_FONTS_H_ |
| |
| #include "base/macros.h" |
| #include "ui/base/ui_base_export.h" |
| #include "ui/gfx/scoped_ns_graphics_context_save_gstate_mac.h" |
| |
| namespace ui { |
| |
| // Ensures LCD font smoothing is enabled before drawing text. This allows Cocoa |
| // drawing code to override a decision made by AppKit to disable font smoothing. |
| // E.g. this occurs when a view is layer-backed or, since 10.8, when a view |
| // returns NO from -[NSView isOpaque]. For this to look nice, there must be an |
| // opaque background already drawn in the graphics context at the location of |
| // the text (but it doesn't need to fill the view bounds, which is required when |
| // -[NSView isOpaque] returns YES). |
| class UI_BASE_EXPORT ScopedCGContextSmoothFonts { |
| public: |
| ScopedCGContextSmoothFonts(); |
| ~ScopedCGContextSmoothFonts(); |
| |
| private: |
| gfx::ScopedNSGraphicsContextSaveGState save_state_; |
| |
| DISALLOW_COPY_AND_ASSIGN(ScopedCGContextSmoothFonts); |
| }; |
| |
| } // namespace ui |
| |
| #endif // UI_BASE_COCOA_SCOPED_CG_CONTEXT_SMOOTH_FONTS_H_ |