| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 #ifndef UI_BASE_LAYOUT_H_ | 5 #ifndef UI_BASE_LAYOUT_H_ |
| 6 #define UI_BASE_LAYOUT_H_ | 6 #define UI_BASE_LAYOUT_H_ |
| 7 | 7 |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
| 11 #include "ui/base/ui_export.h" | 11 #include "ui/base/ui_base_export.h" |
| 12 #include "ui/gfx/native_widget_types.h" | 12 #include "ui/gfx/native_widget_types.h" |
| 13 | 13 |
| 14 namespace ui { | 14 namespace ui { |
| 15 | 15 |
| 16 enum DisplayLayout { | 16 enum DisplayLayout { |
| 17 // The typical layout for e.g. Windows, Mac and Linux. | 17 // The typical layout for e.g. Windows, Mac and Linux. |
| 18 LAYOUT_DESKTOP, | 18 LAYOUT_DESKTOP, |
| 19 | 19 |
| 20 // Layout optimized for touch. Used e.g. for Windows 8 Metro mode. | 20 // Layout optimized for touch. Used e.g. for Windows 8 Metro mode. |
| 21 LAYOUT_TOUCH, | 21 LAYOUT_TOUCH, |
| 22 }; | 22 }; |
| 23 | 23 |
| 24 // Returns the display layout that should be used. This could be used | 24 // Returns the display layout that should be used. This could be used |
| 25 // e.g. to tweak hard-coded padding that's layout specific, or choose | 25 // e.g. to tweak hard-coded padding that's layout specific, or choose |
| 26 // the .pak file of theme resources to load. | 26 // the .pak file of theme resources to load. |
| 27 // WARNING: this is deprecated and will be nuked as soon as aura is the default | 27 // WARNING: this is deprecated and will be nuked as soon as aura is the default |
| 28 // on windows. | 28 // on windows. |
| 29 UI_EXPORT DisplayLayout GetDisplayLayout(); | 29 UI_BASE_EXPORT DisplayLayout GetDisplayLayout(); |
| 30 | 30 |
| 31 // Supported UI scale factors for the platform. This is used as an index | 31 // Supported UI scale factors for the platform. This is used as an index |
| 32 // into the array |kScaleFactorScales| which maps the enum value to a float. | 32 // into the array |kScaleFactorScales| which maps the enum value to a float. |
| 33 // SCALE_FACTOR_NONE is used for density independent resources such as | 33 // SCALE_FACTOR_NONE is used for density independent resources such as |
| 34 // string, html/js files or an image that can be used for any scale factors | 34 // string, html/js files or an image that can be used for any scale factors |
| 35 // (such as wallpapers). | 35 // (such as wallpapers). |
| 36 enum ScaleFactor { | 36 enum ScaleFactor { |
| 37 SCALE_FACTOR_NONE = 0, | 37 SCALE_FACTOR_NONE = 0, |
| 38 SCALE_FACTOR_100P, | 38 SCALE_FACTOR_100P, |
| 39 SCALE_FACTOR_125P, | 39 SCALE_FACTOR_125P, |
| 40 SCALE_FACTOR_133P, | 40 SCALE_FACTOR_133P, |
| 41 SCALE_FACTOR_140P, | 41 SCALE_FACTOR_140P, |
| 42 SCALE_FACTOR_150P, | 42 SCALE_FACTOR_150P, |
| 43 SCALE_FACTOR_180P, | 43 SCALE_FACTOR_180P, |
| 44 SCALE_FACTOR_200P, | 44 SCALE_FACTOR_200P, |
| 45 SCALE_FACTOR_300P, | 45 SCALE_FACTOR_300P, |
| 46 | 46 |
| 47 NUM_SCALE_FACTORS // This always appears last. | 47 NUM_SCALE_FACTORS // This always appears last. |
| 48 }; | 48 }; |
| 49 | 49 |
| 50 // Changes the value of GetSupportedScaleFactors() to |scale_factors|. | 50 // Changes the value of GetSupportedScaleFactors() to |scale_factors|. |
| 51 // Use ScopedSetSupportedScaleFactors for unit tests as not to affect the | 51 // Use ScopedSetSupportedScaleFactors for unit tests as not to affect the |
| 52 // state of other tests. | 52 // state of other tests. |
| 53 UI_EXPORT void SetSupportedScaleFactors( | 53 UI_BASE_EXPORT void SetSupportedScaleFactors( |
| 54 const std::vector<ScaleFactor>& scale_factors); | 54 const std::vector<ScaleFactor>& scale_factors); |
| 55 | 55 |
| 56 // Returns a vector with the scale factors which are supported by this | 56 // Returns a vector with the scale factors which are supported by this |
| 57 // platform, in ascending order. | 57 // platform, in ascending order. |
| 58 UI_EXPORT const std::vector<ScaleFactor>& GetSupportedScaleFactors(); | 58 UI_BASE_EXPORT const std::vector<ScaleFactor>& GetSupportedScaleFactors(); |
| 59 | 59 |
| 60 // Returns the float scale value for |scale_factor|. | 60 // Returns the float scale value for |scale_factor|. |
| 61 UI_EXPORT float GetImageScale(ScaleFactor scale_factor); | 61 UI_BASE_EXPORT float GetImageScale(ScaleFactor scale_factor); |
| 62 | 62 |
| 63 // Returns the supported ScaleFactor which most closely matches |scale|. | 63 // Returns the supported ScaleFactor which most closely matches |scale|. |
| 64 // Converting from float to ScaleFactor is inefficient and should be done as | 64 // Converting from float to ScaleFactor is inefficient and should be done as |
| 65 // little as possible. | 65 // little as possible. |
| 66 // TODO(oshima): Make ScaleFactor a class and remove this. | 66 // TODO(oshima): Make ScaleFactor a class and remove this. |
| 67 UI_EXPORT ScaleFactor GetSupportedScaleFactor(float image_scale); | 67 UI_BASE_EXPORT ScaleFactor GetSupportedScaleFactor(float image_scale); |
| 68 | 68 |
| 69 // Returns the ScaleFactor used by |view|. | 69 // Returns the ScaleFactor used by |view|. |
| 70 UI_EXPORT ScaleFactor GetScaleFactorForNativeView(gfx::NativeView view); | 70 UI_BASE_EXPORT ScaleFactor GetScaleFactorForNativeView(gfx::NativeView view); |
| 71 | 71 |
| 72 // Returns true if |scale_factor| is supported by this platform. | 72 // Returns true if |scale_factor| is supported by this platform. |
| 73 UI_EXPORT bool IsScaleFactorSupported(ScaleFactor scale_factor); | 73 UI_BASE_EXPORT bool IsScaleFactorSupported(ScaleFactor scale_factor); |
| 74 | 74 |
| 75 // Returns the scale factor closest to |scale| from the full list of factors. | 75 // Returns the scale factor closest to |scale| from the full list of factors. |
| 76 // Note that it does NOT rely on the list of supported scale factors. | 76 // Note that it does NOT rely on the list of supported scale factors. |
| 77 // Finding the closest match is inefficient and shouldn't be done frequently. | 77 // Finding the closest match is inefficient and shouldn't be done frequently. |
| 78 UI_EXPORT ScaleFactor FindClosestScaleFactorUnsafe(float scale); | 78 UI_BASE_EXPORT ScaleFactor FindClosestScaleFactorUnsafe(float scale); |
| 79 | 79 |
| 80 namespace test { | 80 namespace test { |
| 81 // Class which changes the value of GetSupportedScaleFactors() to | 81 // Class which changes the value of GetSupportedScaleFactors() to |
| 82 // |new_scale_factors| for the duration of its lifetime. | 82 // |new_scale_factors| for the duration of its lifetime. |
| 83 class UI_EXPORT ScopedSetSupportedScaleFactors { | 83 class UI_BASE_EXPORT ScopedSetSupportedScaleFactors { |
| 84 public: | 84 public: |
| 85 explicit ScopedSetSupportedScaleFactors( | 85 explicit ScopedSetSupportedScaleFactors( |
| 86 const std::vector<ui::ScaleFactor>& new_scale_factors); | 86 const std::vector<ui::ScaleFactor>& new_scale_factors); |
| 87 ~ScopedSetSupportedScaleFactors(); | 87 ~ScopedSetSupportedScaleFactors(); |
| 88 | 88 |
| 89 private: | 89 private: |
| 90 std::vector<ui::ScaleFactor>* original_scale_factors_; | 90 std::vector<ui::ScaleFactor>* original_scale_factors_; |
| 91 | 91 |
| 92 DISALLOW_COPY_AND_ASSIGN(ScopedSetSupportedScaleFactors); | 92 DISALLOW_COPY_AND_ASSIGN(ScopedSetSupportedScaleFactors); |
| 93 }; | 93 }; |
| 94 | 94 |
| 95 } // namespace test | 95 } // namespace test |
| 96 | 96 |
| 97 } // namespace ui | 97 } // namespace ui |
| 98 | 98 |
| 99 #endif // UI_BASE_LAYOUT_H_ | 99 #endif // UI_BASE_LAYOUT_H_ |
| OLD | NEW |