MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / tabSetHandler

Method tabSetHandler

source/windowing/StarWidgetParsing.cpp:621–655  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

619}
620
621WidgetConstructResult WidgetParser::tabSetHandler(String const& name, Json const& config) {
622 TabSetConfig tabSetConfig;
623
624 tabSetConfig.tabButtonBaseImage = config.getString("tabButtonBaseImage");
625 tabSetConfig.tabButtonHoverImage = config.getString("tabButtonHoverImage");
626 tabSetConfig.tabButtonPressedImage = config.getString("tabButtonPressedImage", tabSetConfig.tabButtonHoverImage);
627
628 tabSetConfig.tabButtonBaseImageSelected =
629 config.getString("tabButtonBaseImageSelected", tabSetConfig.tabButtonBaseImage);
630 tabSetConfig.tabButtonHoverImageSelected =
631 config.getString("tabButtonHoverImageSelected", tabSetConfig.tabButtonHoverImage);
632 tabSetConfig.tabButtonPressedImageSelected =
633 config.getString("tabButtonPressedImageSelected", tabSetConfig.tabButtonHoverImageSelected);
634
635 Json defaultPressedOffset = Root::singleton().assets()->json("/interface.config:buttonPressedOffset");
636 tabSetConfig.tabButtonPressedOffset = jsonToVec2I(config.get("tabButtonPressedOffset", defaultPressedOffset));
637 tabSetConfig.tabButtonTextOffset = config.opt("tabButtonTextOffset").apply(jsonToVec2I).value();
638 tabSetConfig.tabButtonSpacing = config.opt("tabButtonSpacing").apply(jsonToVec2I).value();
639
640 auto tabSet = make_shared<TabSetWidget>(tabSetConfig);
641 common(tabSet, config);
642
643 try {
644 for (auto entry : config.get("tabs").iterateArray()) {
645 auto widget = make_shared<Widget>();
646 constructImpl(entry.get("children"), widget.get());
647 widget->determineSizeFromChildren();
648 tabSet->addTab(entry.getString("tabName"), widget, entry.getString("tabTitle"));
649 }
650 } catch (JsonException const& e) {
651 throw WidgetParserException(strf("Malformed gui json. {}", outputException(e, false)));
652 }
653
654 return WidgetConstructResult(tabSet, name, config.getFloat("zlevel", 0));
655}
656
657WidgetConstructResult WidgetParser::widgetHandler(String const& name, Json const& config) {
658 auto widget = make_shared<Widget>();

Callers

nothing calls this directly

Calls 15

singletonClass · 0.85
jsonToVec2IFunction · 0.85
strfFunction · 0.85
getStringMethod · 0.80
jsonMethod · 0.80
assetsMethod · 0.80
iterateArrayMethod · 0.80
addTabMethod · 0.80
getFloatMethod · 0.80
outputExceptionFunction · 0.50

Tested by

no test coverage detected