From 09ae240be9cb6ca488ca54f8d263648fa0393cf7 Mon Sep 17 00:00:00 2001 From: cxl Date: Thu, 3 Aug 2017 13:07:17 +0000 Subject: [PATCH] CtrlLib: ArrayCtrl::GetSelKeys git-svn-id: svn://ultimatepp.org/upp/trunk@11287 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/CtrlLib/ArrayCtrl.cpp | 9 +++++++++ uppsrc/CtrlLib/ArrayCtrl.h | 1 + uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp | 6 ++++++ 3 files changed, 16 insertions(+) diff --git a/uppsrc/CtrlLib/ArrayCtrl.cpp b/uppsrc/CtrlLib/ArrayCtrl.cpp index e363941eb..21e0f5e72 100644 --- a/uppsrc/CtrlLib/ArrayCtrl.cpp +++ b/uppsrc/CtrlLib/ArrayCtrl.cpp @@ -1552,6 +1552,15 @@ bool ArrayCtrl::IsSel(int i) const return multiselect ? IsSelected(i) : GetCursor() == i; } +Vector ArrayCtrl::GetSelKeys() const +{ + Vector id; + for(int i = 0; i < GetCount(); i++) + if(IsSel(i)) + id.Add(Get(i, 0)); + return id; +} + int ArrayCtrl::GetScroll() const { return sb; diff --git a/uppsrc/CtrlLib/ArrayCtrl.h b/uppsrc/CtrlLib/ArrayCtrl.h index b7c8bd081..193d96977 100644 --- a/uppsrc/CtrlLib/ArrayCtrl.h +++ b/uppsrc/CtrlLib/ArrayCtrl.h @@ -448,6 +448,7 @@ public: bool IsSelected(int i) const { return i < array.GetCount() && array[i].select; } void ClearSelection(); bool IsSel(int i) const; + Vector GetSelKeys() const; void EnableLine(int i, bool e); void DisableLine(int i) { EnableLine(i, false); } diff --git a/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp b/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp index f284d6315..74ba33763 100644 --- a/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp @@ -2179,6 +2179,12 @@ onst]&] [s2; If there is selection in the widget, returns true if [*@3 i] is selected, otherwise returns true if cursor is at [*@3 i].&] [s3; &] +[s4;%- &] +[s5;:Upp`:`:ArrayCtrl`:`:GetSelKeys`(`)const:%- [_^Upp`:`:Vector^ Vector]<[@(0.0.255) int +]>_[* GetSelKeys]()_[@(0.0.255) const]&] +[s2; Returns keys (elements with index 0) of all selected lines (ordered +by line order).&] +[s3;%- &] [s4; &] [s5;:Upp`:`:ArrayCtrl`:`:EnableLine`(int`,bool`): [@(0.0.255) void]_[* EnableLine]([@(0.0.255) i nt]_[*@3 i], [@(0.0.255) bool]_[*@3 e])&]