blob: 3cdbccdbf4dcdb63f49c8db8eab135ea16575866 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
// 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_VIEWS_CONTROLS_MENU_MENU_CONFIG_H_
#define UI_VIEWS_CONTROLS_MENU_MENU_CONFIG_H_
#include "third_party/skia/include/core/SkColor.h"
#include "ui/gfx/font_list.h"
#include "ui/views/views_export.h"
namespace ui {
class NativeTheme;
}
namespace views {
// Layout type information for menu items. Use the instance() method to obtain
// the MenuConfig for the current platform.
struct VIEWS_EXPORT MenuConfig {
explicit MenuConfig(const ui::NativeTheme* theme);
~MenuConfig();
static const MenuConfig& instance(const ui::NativeTheme* theme);
// Font list used by menus.
gfx::FontList font_list;
// Color for the arrow to scroll bookmarks.
SkColor arrow_color;
// Menu border sizes.
int menu_vertical_border_size;
int menu_horizontal_border_size;
// Submenu horizontal inset with parent menu. This is the horizontal overlap
// between the submenu and its parent menu, not including the borders of
// submenu and parent menu.
int submenu_horizontal_inset;
// Margins between the top of the item and the label.
int item_top_margin;
// Margins between the bottom of the item and the label.
int item_bottom_margin;
// Margins used if the menu doesn't have icons.
int item_no_icon_top_margin;
int item_no_icon_bottom_margin;
// Margins between the left of the item and the icon.
int item_left_margin;
// Padding between the label and submenu arrow.
int label_to_arrow_padding;
// Padding between the arrow and the edge.
int arrow_to_edge_padding;
// Padding between the icon and label.
int icon_to_label_padding;
// Padding between the gutter and label.
int gutter_to_label;
// Size of the check.
int check_width;
int check_height;
// Width of the radio bullet.
int radio_width;
// Width of the submenu arrow.
int arrow_width;
// Width of the gutter. Only used if render_gutter is true.
int gutter_width;
// Height of a normal separator (ui::NORMAL_SEPARATOR).
int separator_height;
// Height of a ui::UPPER_SEPARATOR.
int separator_upper_height;
// Height of a ui::LOWER_SEPARATOR.
int separator_lower_height;
// Height of a ui::SPACING_SEPARATOR.
int separator_spacing_height;
// Whether or not the gutter should be rendered. The gutter is specific to
// Vista.
bool render_gutter;
// Are mnemonics shown?
bool show_mnemonics;
// Height of the scroll arrow.
int scroll_arrow_height;
// Padding between the label and minor text. Only used if there is an
// accelerator or sublabel.
int label_to_minor_text_padding;
// Minimum height of menu item.
int item_min_height;
// Whether the keyboard accelerators are visible.
bool show_accelerators;
// True if icon to label padding is always added with or without icon.
bool always_use_icon_to_label_padding;
// True if submenu arrow and shortcut right edge should be aligned.
bool align_arrow_and_shortcut;
// True if the context menu's should be offset from the cursor position.
bool offset_context_menus;
const ui::NativeTheme* native_theme;
// Delay, in ms, between when menus are selected or moused over and the menu
// appears.
int show_delay;
// Radius of the rounded corners of the menu border. Must be >= 0.
int corner_radius;
private:
// Configures a MenuConfig as appropriate for the current platform.
void Init(const ui::NativeTheme* theme);
// TODO: temporary until we standardize.
void InitAura(const ui::NativeTheme* theme);
};
} // namespace views
#endif // UI_VIEWS_CONTROLS_MENU_MENU_CONFIG_H_
|