MCPcopy Create free account
hub / github.com/VitalAudio/visage / setupButtons

Method setupButtons

examples/Showcase/examples_frame.cpp:301–376  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

299}
300
301void ExamplesFrame::setupButtons() {
302 visage::Font font(20, resources::fonts::Lato_Regular_ttf);
303
304 icon_button_ = std::make_unique<visage::ToggleIconButton>(resources::icons::check_circle_svg.data,
305 resources::icons::check_circle_svg.size, true);
306
307 text_button_ = std::make_unique<visage::ToggleTextButton>("Toggle");
308 text_button_->setFont(font);
309
310 ui_button_ = std::make_unique<visage::UiButton>("Trigger Overlay");
311 ui_button_->setFont(font);
312 ui_button_->onToggle() = [this](visage::Button* button, bool toggled) {
313 on_show_overlay_.callback();
314 };
315
316 ui_button_->setToggleOnMouseDown(true);
317
318 action_button_ = std::make_unique<visage::UiButton>("Popup Menu");
319 action_button_->setFont(font);
320 action_button_->setActionButton();
321 action_button_->onToggle() = [this](visage::Button* button, bool toggled) {
322 visage::PopupMenu menu;
323 menu.addOption(0, "Take Screenshot");
324 menu.addOption(1, "Toggle Debug Info");
325 menu.addBreak();
326 visage::PopupMenu sub_menu("Sub Menu");
327 sub_menu.addOption(3, "Sub Item 1");
328 sub_menu.addBreak();
329 sub_menu.addOption(4, "Sub Item 2");
330 sub_menu.addOption(5, "Sub Item 3");
331 sub_menu.addOption(6, "Sub Item 4");
332 menu.addSubMenu(sub_menu);
333 visage::PopupMenu sub_menu2("Other Sub Menu");
334 sub_menu2.addOption(7, "Other Sub Item 1");
335 sub_menu2.addBreak();
336 sub_menu2.addOption(8, "Other Sub Item 2");
337 sub_menu2.addOption(9, "Other Sub Item 3");
338 sub_menu2.addOption(10, "Other Sub Item 4");
339 menu.addSubMenu(sub_menu2);
340 menu.addBreak();
341 menu.addOption(12, "Force Crash");
342 menu.addOption(13, "Close Application");
343
344 menu.onSelection() = [this](int id) {
345 if (id == 0) {
346 visage::File file = visage::hostExecutable().parent_path() / "screenshot.png";
347 on_screenshot_.callback(file.string());
348 }
349 else if (id == 1)
350 on_toggle_debug_.callback();
351 else if (id == 12)
352 visage::forceCrash();
353 else if (id == 13)
354 visage::closeApplication();
355 };
356
357 menu.show(action_button_.get());
358 };

Callers

nothing calls this directly

Calls 15

hostExecutableFunction · 0.85
callbackMethod · 0.80
setActionButtonMethod · 0.80
addBreakMethod · 0.80
addSubMenuMethod · 0.80
getMethod · 0.80
setFlexMethod · 0.80
setFlexWrapMethod · 0.80
setFlexGapMethod · 0.80
setFlexItemAlignmentMethod · 0.80
setFlexWrapAlignmentMethod · 0.80
forceCrashFunction · 0.50

Tested by

no test coverage detected