X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2FWorkAreaManager.cpp;h=f938db4eb9d80306f6da263e11be708325b934d7;hb=1f10969bb5c5f36017bf5ba8671381b09945cf57;hp=710dfa13e4b455b2e410628d197d1c7d96884916;hpb=4ce0961b5acbaf0f78d6782cfedbbfa885b763ae;p=lyx.git diff --git a/src/frontends/WorkAreaManager.cpp b/src/frontends/WorkAreaManager.cpp index 710dfa13e4..f938db4eb9 100644 --- a/src/frontends/WorkAreaManager.cpp +++ b/src/frontends/WorkAreaManager.cpp @@ -11,28 +11,49 @@ #include +#include "WorkAreaManager.h" + #include "WorkArea.h" -#include "WorkAreaManager.h" namespace lyx { namespace frontend { -void WorkAreaManager::registerWorkArea(WorkArea * wa) +void WorkAreaManager::add(WorkArea * wa) { work_areas_.push_back(wa); } -void WorkAreaManager::changed() + +void WorkAreaManager::remove(WorkArea * wa) { - for (size_t i = 0; i != work_areas_.size(); ++i) - work_areas_[i]->redraw(); + work_areas_.remove(wa); } -void WorkAreaManager::closing() + +void WorkAreaManager::redrawAll(bool update_metrics) +{ + iterator it = work_areas_.begin(); + iterator const en = work_areas_.end(); + for (; it != en; ++it) + (*it)->redraw(update_metrics); +} + + +void WorkAreaManager::closeAll() +{ + while (!work_areas_.empty()) + // WorkArea is de-registering itself. + (*work_areas_.begin())->close(); +} + + +void WorkAreaManager::updateTitles() { - for (size_t i = 0; i != work_areas_.size(); ++i) - work_areas_[i]->close(); + iterator it = work_areas_.begin(); + iterator const en = work_areas_.end(); + for (; it != en; ++it) + (*it)->updateWindowTitle(); } } // namespace frontend