载入中...
搜索中...
未找到
PcgPhotoModeRuntimeUI.cpp
浏览该文件的文档.
12Result<void> PcgPhotoModeRuntimeUI::configure(int rawKind, const std::string &name, const std::string &text,
14 if (rawKind < 0 || rawKind > 13) return Result<void>::failure(Diagnostic::error(DiagnosticCode::InvalidArgument, "photo-mode widget kind must be in range 0..13", {}, {}, "ui.pcgPhotoModeRuntimeUI"));
15 if (!std::isfinite(value) || !std::isfinite(minimum) || !std::isfinite(maximum) || minimum > maximum)
16 return Result<void>::failure(Diagnostic::error(DiagnosticCode::InvalidArgument, "photo-mode slider values must be finite and minimum must not exceed maximum", {}, {}, "ui.pcgPhotoModeRuntimeUI"));
19 wholeNumbers_ = kind_ == PcgPhotoModeWidgetKind::IntSlider || kind_ == PcgPhotoModeWidgetKind::DisplayIntSlider;
26 case PcgPhotoModeWidgetKind::Slider: case PcgPhotoModeWidgetKind::IntSlider: labelVisible_ = sliderVisible_ = inputVisible_ = true; break;
27 case PcgPhotoModeWidgetKind::DisplaySlider: case PcgPhotoModeWidgetKind::DisplayIntSlider: labelVisible_ = secondLabelVisible_ = sliderVisible_ = true; break;
39 kind_ == PcgPhotoModeWidgetKind::Dropdown || kind_ == PcgPhotoModeWidgetKind::Vector2 || kind_ == PcgPhotoModeWidgetKind::Vector3)
45 if (!std::isfinite(value)) return Result<void>::failure(Diagnostic::error(DiagnosticCode::InvalidArgument, "photo-mode slider value must be finite", {}, {}, "ui.pcgPhotoModeRuntimeUI"));
51PcgPhotoModeInputStatus PcgPhotoModeRuntimeUI::applyFloatInput(const std::string &text) noexcept {
71 auto vm = table.getHandle(); auto c = table.addClass("PcgPhotoModeRuntimeUI", ssq::Class::Ctor<PcgPhotoModeRuntimeUI()>());
72 c.addFunc("configure", [vm](PcgPhotoModeRuntimeUI *s, int k, const std::string &n, const std::string &t, float v, float lo, float hi, bool found) { return eve::script::projectResult(vm, s->configure(k, n, t, v, lo, hi, found)); });
74 c.addFunc("setSliderValue", [vm](PcgPhotoModeRuntimeUI *s, float v) { return eve::script::projectResult(vm, s->setSliderValue(v)); });
75 c.addFunc("applyFloatInput", [](PcgPhotoModeRuntimeUI *s, const std::string &v) { return s->applyFloatInput(v) == PcgPhotoModeInputStatus::Applied; });
76 c.addFunc("updateWrap", [](PcgPhotoModeRuntimeUI *, const std::string &v) { return PcgPhotoModeRuntimeUI::updateWrap(v); });
83 c.addFunc("getWholeNumbers", [](const PcgPhotoModeRuntimeUI* s){ return s->getWholeNumbers(); });
85 c.addFunc("getInputRefresh", [](const PcgPhotoModeRuntimeUI* s){ return s->getInputRefresh(); });
86 c.addFunc("getLabelVisible", [](const PcgPhotoModeRuntimeUI* s){ return s->getLabelVisible(); });
87 c.addFunc("getSecondLabelVisible", [](const PcgPhotoModeRuntimeUI* s){ return s->getSecondLabelVisible(); });
88 c.addFunc("getSliderVisible", [](const PcgPhotoModeRuntimeUI* s){ return s->getSliderVisible(); });
89 c.addFunc("getInputVisible", [](const PcgPhotoModeRuntimeUI* s){ return s->getInputVisible(); });
90 c.addFunc("getToggleVisible", [](const PcgPhotoModeRuntimeUI* s){ return s->getToggleVisible(); });
91 c.addFunc("getButtonVisible", [](const PcgPhotoModeRuntimeUI* s){ return s->getButtonVisible(); });
92 c.addFunc("getDropdownVisible", [](const PcgPhotoModeRuntimeUI* s){ return s->getDropdownVisible(); });
93 c.addFunc("getImageVisible", [](const PcgPhotoModeRuntimeUI* s){ return s->getImageVisible(); });
94 c.addFunc("getHeaderVisible", [](const PcgPhotoModeRuntimeUI* s){ return s->getHeaderVisible(); });
95 c.addFunc("getColorVisible", [](const PcgPhotoModeRuntimeUI* s){ return s->getColorVisible(); });
96 c.addFunc("getVector2Visible", [](const PcgPhotoModeRuntimeUI* s){ return s->getVector2Visible(); });
97 c.addFunc("getVector3Visible", [](const PcgPhotoModeRuntimeUI* s){ return s->getVector3Visible(); });
98 c.addFunc("getInitialCallbackRevision", [](const PcgPhotoModeRuntimeUI* s){ return s->getInitialCallbackRevision(); });
The single Squirrel projection for common Result, Status and Value.
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
Backend-neutral state of one Pcg PhotoModeUIHelper prefab instance.
Definition PcgPhotoModeRuntimeUI.h:25
Result< void > setSliderValue(float value)
Apply a slider value and consume the input synchronization flag.
Definition PcgPhotoModeRuntimeUI.cpp:44
PcgPhotoModeInputStatus applyFloatInput(const std::string &value) noexcept
Parse, clamp, and apply text using Pcg GetAndSetFloatValue semantics.
Definition PcgPhotoModeRuntimeUI.cpp:51
static std::string updateWrap(const std::string &value)
Wrap metrics text with Pcg's exact 68-column algorithm.
Definition PcgPhotoModeRuntimeUI.cpp:59
Result< void > configure(int kind, const std::string &name, const std::string &value, float sliderValue, float minimum, float maximum, bool bannerImageFound=true)
Configure one widget family and publish its initial callback revision.
Definition PcgPhotoModeRuntimeUI.cpp:12
ssq::Table projectResult(HSQUIRRELVM vm, Result< void > &&result)
Consume and project a void native Result using the common schema.
Definition SquirrelBinding.cpp:470
Definition Component.cpp:5
PcgPhotoModeWidgetKind
Widget families created by Pcg PhotoModeUtils.
Definition PcgPhotoModeRuntimeUI.h:15
@ IntSlider
@ DisplayIntSlider
@ DisplaySlider
@ BannerImage
void exposePcgPhotoModeRuntimeUIBindings(ssq::Table &table)
Register Pcg photo-mode runtime UI bindings.
Definition PcgPhotoModeRuntimeUI.cpp:70
PcgPhotoModeInputStatus
Result of parsing one Pcg photo-mode numeric input field.
Definition PcgPhotoModeRuntimeUI.h:22
@ InvalidArgument