diff --git a/include/indicators/multi_progress.hpp b/include/indicators/multi_progress.hpp index 503c221..2dbb9c9 100644 --- a/include/indicators/multi_progress.hpp +++ b/include/indicators/multi_progress.hpp @@ -25,7 +25,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #pragma once -#define NOMINMAX #include #include #include @@ -39,8 +38,9 @@ template class MultiProgress { public: MultiProgress() { _bars.reserve(count); } - void add_progress_bar(Indicator &bar) { - _bars.push_back(bar); + template + typename std::enable_if<(index < count), void>::type insert(Indicator &bar) { + _bars.insert(_bars.begin() + index, 1, bar); bar._multi_progress_mode = true; } diff --git a/samples/multi_block_progress_bar.cpp b/samples/multi_block_progress_bar.cpp index ae76594..d43aabb 100644 --- a/samples/multi_block_progress_bar.cpp +++ b/samples/multi_block_progress_bar.cpp @@ -25,9 +25,9 @@ int main() { bar3.set_prefix_text("Progress Bar #3 "); indicators::MultiProgress bars; - bars.add_progress_bar(bar1); - bars.add_progress_bar(bar2); - bars.add_progress_bar(bar3); + bars.insert<0>(bar1); + bars.insert<1>(bar2); + bars.insert<2>(bar3); std::cout << "Multiple Progress Bars:\n"; diff --git a/samples/multi_progress_bar.cpp b/samples/multi_progress_bar.cpp index 376c611..852ce90 100644 --- a/samples/multi_progress_bar.cpp +++ b/samples/multi_progress_bar.cpp @@ -40,9 +40,9 @@ int main() { bar3.set_prefix_text("Progress Bar #3 "); indicators::MultiProgress bars; - bars.add_progress_bar(bar1); - bars.add_progress_bar(bar2); - bars.add_progress_bar(bar3); + bars.insert<0>(bar1); + bars.insert<1>(bar2); + bars.insert<1>(bar3); std::cout << "Multiple Progress Bars:\n";