载入中...
搜索中...
未找到
PcgPhotoModePanels.cpp
浏览该文件的文档.
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)];}
9PcgUiRequestStatus PcgPhotoModePanels::consumeScrollReset()noexcept{auto v=scrollReset_?PcgUiRequestStatus::Requested:PcgUiRequestStatus::None;scrollReset_=false;return v;}
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();});}
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
Visual snapshot matching Pcg PhotoModePanelButton.
Definition PcgPhotoModePanels.h:22
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.
Definition PcgPhotoModePanels.cpp:10
Seven-panel selection transaction used by Pcg photo mode.
Definition PcgPhotoModePanels.h:11
bool isActive(int panel) const noexcept
Return whether one panel and its button are active.
Definition PcgPhotoModePanels.cpp:8
Result< void > select(int panel)
Select startup panel 0..6 and atomically publish all button/panel states.
Definition PcgPhotoModePanels.cpp:7
PcgUiRequestStatus consumeScrollReset() noexcept
Consume request to rebuild selected scroll content at its top.
Definition PcgPhotoModePanels.cpp:9
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
void exposePcgPhotoModePanelsBindings(ssq::Table &t)
Register Pcg photo-mode panel bindings.
Definition PcgPhotoModePanels.cpp:11
PcgUiRequestStatus
Explicit status returned when consuming a one-shot Pcg UI request.
Definition PcgUiStatus.h:4
@ Requested
@ InvalidArgument