From 154cfdf4fdcf2335a0f7f97cf1062091583bdb3f Mon Sep 17 00:00:00 2001 From: cxl Date: Sat, 24 Jun 2017 13:20:01 +0000 Subject: [PATCH] WithDropChoice: Set/Remove entry in drop-down list git-svn-id: svn://ultimatepp.org/upp/trunk@11201 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/CtrlLib/DropChoice.cpp | 6 ++++++ uppsrc/CtrlLib/DropChoice.h | 4 ++++ uppsrc/CtrlLib/src.tpp/WithDropChoice$en-us.tpp | 11 +++++++++++ 3 files changed, 21 insertions(+) diff --git a/uppsrc/CtrlLib/DropChoice.cpp b/uppsrc/CtrlLib/DropChoice.cpp index 8549861b3..3b9a3b41a 100644 --- a/uppsrc/CtrlLib/DropChoice.cpp +++ b/uppsrc/CtrlLib/DropChoice.cpp @@ -114,6 +114,12 @@ void DropChoice::Add(const Value& s) { EnableDrop(true); } +void DropChoice::Remove(int i) +{ + list.Remove(i); + EnableDrop(list.GetCount()); +} + void DropChoice::Clear() { list.Clear(); EnableDrop(always_drop); diff --git a/uppsrc/CtrlLib/DropChoice.h b/uppsrc/CtrlLib/DropChoice.h index 961dd9e99..eef08973a 100644 --- a/uppsrc/CtrlLib/DropChoice.h +++ b/uppsrc/CtrlLib/DropChoice.h @@ -181,6 +181,8 @@ public: void Clear(); void Add(const Value& data); + void Set(int i, const Value& data) { list.Set(i, 0, data); } + void Remove(int i); void SerializeList(Stream& s); int GetCount() const { return list.GetCount(); } @@ -241,6 +243,8 @@ public: void ClearList() { select.Clear(); } void AddList(const Value& data) { select.Add(data); } + void Set(int i, const Value& data) { select.Set(i, data); } + void Remove(int i) { select.Remove(i); } void SerializeList(Stream& s) { select.SerializeList(s); } int GetCount() const { return select.GetCount(); } diff --git a/uppsrc/CtrlLib/src.tpp/WithDropChoice$en-us.tpp b/uppsrc/CtrlLib/src.tpp/WithDropChoice$en-us.tpp index 7405250f7..02edf4c22 100644 --- a/uppsrc/CtrlLib/src.tpp/WithDropChoice$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/WithDropChoice$en-us.tpp @@ -48,6 +48,17 @@ onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 data])&] [s2;%% Adds [%-*@3 data] to the drop`-down list.&] [s3;%% &] [s4; &] +[s5;:Upp`:`:WithDropChoice`:`:Set`(int`,const Upp`:`:Value`&`): [@(0.0.255) void]_[* Set]( +[@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Upp`:`:Value^ Value][@(0.0.255) `&]_[*@3 data +])&] +[s2;%% Sets entry [%-*@3 i] in drop`-down list to [%-*@3 data] .&] +[s3;%% &] +[s4; &] +[s5;:Upp`:`:WithDropChoice`:`:Remove`(int`): [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_ +[*@3 i])&] +[s2;%% Removes entry [%-*@3 i] in drop`-down list.&] +[s3;%% &] +[s4; &] [s5;:WithDropChoice`:`:SerializeList`(Stream`&`): [@(0.0.255) void]_[* SerializeList]([_^Stream^ S tream][@(0.0.255) `&]_[*@3 s])&] [s2;%% Serializes the drop`-down list content.&]