71 i.
label = std::move(title);
80 i.label = std::move(
label);
90 i.label = std::move(
label);
92 i.normalized_value = std::clamp(normalized, 0.0f, 1.0f);
93 i.normalized_step = step > 0.0f ? step : 0.05f;
98 std::size_t selected, std::function<
void(
const Item&)>
on_change) {
101 i.label = std::move(
label);
104 i.choice_index =
i.choices.empty() ? 0 : std::min(selected,
i.choices.size() - 1);
118 const float next = std::clamp(
value, 0.0f, 1.0f);
140 if (item_change_dispatch_depth_ != 0) {
141 deferred_items_ = std::move(
items);
144 replace_items(std::move(
items));
150 min_width_ = std::max(0.0f,
width);
158 const std::vector<Item>&
items()
const {
return items_; }
175 std::function<
void(std::optional<int>)>
on_close);
263 void scroll_row_into_view(
int index);
264 void move_hover(
int delta);
265 void move_hover_to_edge(
bool last);
266 void adjust_control(
Item& item,
float delta);
268 void fire_close(std::optional<int> result);
269 void replace_items(std::vector<Item>
items);
270 void notify_item_change(
Item& item);
271 void flush_deferred_items();
273 std::vector<Item> items_;
275 int hover_index_ = -1;
276 int active_slider_index_ = -1;
277 int active_pointer_id_ = 0;
278 bool closed_ =
false;
279 float scroll_ = 0.0f;
280 static float slider_track_right(
const Item& item,
const Rect&
row);
281 static constexpr float kValueLabelWidth = 52.0f;
282 float min_width_ = 0.0f;
283 std::size_t item_change_dispatch_depth_ = 0;
284 std::optional<std::vector<Item>> deferred_items_;
286 static constexpr float kRowHeight = 24.0f;
287 static constexpr float kHPad = 34.0f;
288 static constexpr float kMinWidth = 120.0f;
289 static constexpr float kRadius = 4.0f;
295 static constexpr float kSeparatorHeight = 7.0f;
296 static constexpr float kFontSize = 12.0f;
300 static constexpr float kEdgeMargin = 4.0f;
Definition canvas.hpp:240
@ row
Definition view.hpp:991
void set_focusable(bool f)
Definition view.hpp:669
Definition affine_transform.hpp:24
Hover-cursor tracking for platform window hosts.
Definition fwd.hpp:27
@ value
the widget's primary value (Knob, Fader, RangeSlider, Toggle, ProgressBar)
Definition binding_diagnostics.hpp:19
@ i
Definition input_events.hpp:40
@ width
Definition css_animation.hpp:127
ContextMenu PopupMenu
Design-system alias.
Definition context_menu.hpp:308
A font request, as a delegate expresses it.
Definition widget_metrics.hpp:55
Rich key event with key code, modifiers, and repeat state.
Definition input_events.hpp:193
Rich mouse/pointer event with position, modifiers, button state, pointer ID, and stylus properties.
Definition input_events.hpp:104
Definition geometry.hpp:20
Axis-aligned rectangle in continuous (float) coordinates.
Definition geometry.hpp:52
float width
Definition geometry.hpp:53