载入中...
搜索中...
未找到
PcgPhotoModePanels.cpp
浏览该文件的文档.
3#include <simplesquirrel/simplesquirrel.hpp>
4#include <algorithm>
5#include <cmath>
6namespace eve::ui {
7Result<void> PcgPhotoModePanels::select(int panel){if(panel<0||panel>=int(active_.size()))return Result<void>::failure(Diagnostic::error(DiagnosticCode::InvalidArgument,"photo-mode panel must be in range 0..6","ui.pcgPhotoModePanels.select"));active_.fill(false);active_[size_t(panel)]=true;selected_=panel;scrollReset_=true;++revision_;return Result<void>::success();}
8bool PcgPhotoModePanels::isActive(int panel)const noexcept{return panel>=0&&panel<int(active_.size())&&active_[size_t(panel)];}
10Result<void> PcgPhotoModePanelButton::configure(float nr,float ng,float nb,float na,float sr,float sg,float sb,float sa){float v[]={nr,ng,nb,na,sr,sg,sb,sa};if(!std::all_of(std::begin(v),std::end(v),[](float x){return std::isfinite(x);}))return Result<void>::failure(Diagnostic::error(DiagnosticCode::InvalidArgument,"panel colors must be finite","ui.pcgPhotoModePanelButton.configure"));nr_=nr;ng_=ng;nb_=nb;na_=na;sr_=sr;sg_=sg;sb_=sb;sa_=sa;return Result<void>::success();}
11void exposePcgPhotoModePanelsBindings(ssq::Table&t){auto vm=t.getHandle();auto p=t.addClass("PcgPhotoModePanels",ssq::Class::Ctor<PcgPhotoModePanels()>());p.addFunc("select",[vm](PcgPhotoModePanels*s,int n){return eve::script::projectResult(vm,s->select(n));});p.addFunc("getSelected",[](const PcgPhotoModePanels*s){return s->getSelected();});p.addFunc("isActive",[](const PcgPhotoModePanels*s,int n){return s->isActive(n);});p.addFunc("consumeScrollReset",[](PcgPhotoModePanels*s){return s->consumeScrollReset()==PcgUiRequestStatus::Requested;});p.addFunc("getRevision",[](const PcgPhotoModePanels*s){return s->getRevision();});auto b=t.addClass("PcgPhotoModePanelButton",ssq::Class::Ctor<PcgPhotoModePanelButton()>());b.addFunc("configure",[vm](PcgPhotoModePanelButton*s,float a,float c,float d,float e,float f,float g,float h,float i){return eve::script::projectResult(vm,s->configure(a,c,d,e,f,g,h,i));});b.addFunc("setSelected",[](PcgPhotoModePanelButton*s,bool v){s->setSelected(v);});b.addFunc("getNormalR",[](const PcgPhotoModePanelButton*s){return s->getNormalR();});b.addFunc("getNormalG",[](const PcgPhotoModePanelButton*s){return s->getNormalG();});b.addFunc("getNormalB",[](const PcgPhotoModePanelButton*s){return s->getNormalB();});b.addFunc("getNormalA",[](const PcgPhotoModePanelButton*s){return s->getNormalA();});b.addFunc("getHighlightR",[](const PcgPhotoModePanelButton*s){return s->getHighlightR();});b.addFunc("getLayoutEnabled",[](const PcgPhotoModePanelButton*s){return s->getLayoutEnabled();});b.addFunc("getSelected",[](const PcgPhotoModePanelButton*s){return s->getSelected();});}
12}
float x
Definition AnimClip.cpp:738
const std::string & s
glm::vec4 p[6]
HSQUIRRELVM vm
Definition ECS.cpp:20
tensor::Graph g
Definition GpuGraph.cpp:7
glm::vec3 n
Definition Grass.cpp:63
float v
std::int32_t c
int h
MeleePoint3 b
Definition MeleeHit.cpp:41
MeleePoint3 a
Definition MeleeHit.cpp:40
float f
float d
float t
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
Move-only operation result carrying either a value or Status.
Definition Result.h:155
static Result success(T value)
Construct a successful result owning value.
Definition Result.h:164
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
Visual snapshot matching Pcg PhotoModePanelButton.
Result< void > configure(float nr, float ng, float nb, float na, float sr, float sg, float sb, float sa)
Configure selected and unselected RGBA colors atomically.
Seven-panel selection transaction used by Pcg photo mode.
bool isActive(int panel) const noexcept
Return whether one panel and its button are active.
Result< void > select(int panel)
Select startup panel 0..6 and atomically publish all button/panel states.
PcgUiRequestStatus consumeScrollReset() noexcept
Consume request to rebuild selected scroll content at its top.
ssq::Table projectResult(HSQUIRRELVM vm, Result< void > &&result)
Consume and project a void native Result using the common schema.
void exposePcgPhotoModePanelsBindings(ssq::Table &t)
Register Pcg photo-mode panel bindings.
PcgUiRequestStatus
Explicit status returned when consuming a one-shot Pcg UI request.
Definition PcgUiStatus.h:4