summaryrefslogtreecommitdiff
path: root/libs/dgl/src/App.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/dgl/src/App.cpp')
-rw-r--r--libs/dgl/src/App.cpp69
1 files changed, 6 insertions, 63 deletions
diff --git a/libs/dgl/src/App.cpp b/libs/dgl/src/App.cpp
index 1b37ca3..754e44e 100644
--- a/libs/dgl/src/App.cpp
+++ b/libs/dgl/src/App.cpp
@@ -14,28 +14,13 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#include "../App.hpp"
+#include "AppPrivateData.hpp"
#include "../Window.hpp"
-#include <list>
-
START_NAMESPACE_DGL
// -----------------------------------------------------------------------
-struct App::PrivateData {
- bool doLoop;
- unsigned visibleWindows;
- std::list<Window*> windows;
- std::list<IdleCallback*> idleCallbacks;
-
- PrivateData()
- : doLoop(false),
- visibleWindows(0) {}
-};
-
-// -----------------------------------------------------------------------
-
App::App()
: pData(new PrivateData())
{
@@ -43,20 +28,18 @@ App::App()
App::~App()
{
- pData->windows.clear();
- pData->idleCallbacks.clear();
delete pData;
}
void App::idle()
{
- for (std::list<Window*>::iterator it = pData->windows.begin(); it != pData->windows.end(); ++it)
+ for (std::list<Window*>::iterator it = pData->windows.begin(), ite = pData->windows.end(); it != ite; ++it)
{
Window* const window(*it);
window->_idle();
}
- for (std::list<IdleCallback*>::iterator it = pData->idleCallbacks.begin(); it != pData->idleCallbacks.end(); ++it)
+ for (std::list<IdleCallback*>::iterator it = pData->idleCallbacks.begin(), ite = pData->idleCallbacks.end(); it != ite; ++it)
{
IdleCallback* const idleCallback(*it);
idleCallback->idleCallback();
@@ -65,7 +48,7 @@ void App::idle()
void App::exec()
{
- while (pData->doLoop)
+ for (; pData->doLoop;)
{
idle();
d_msleep(10);
@@ -76,58 +59,18 @@ void App::quit()
{
pData->doLoop = false;
- for (std::list<Window*>::reverse_iterator rit = pData->windows.rbegin(); rit != pData->windows.rend(); ++rit)
+ for (std::list<Window*>::reverse_iterator rit = pData->windows.rbegin(), rite = pData->windows.rend(); rit != rite; ++rit)
{
Window* const window(*rit);
window->close();
}
}
-bool App::isQuiting() const
+bool App::isQuiting() const noexcept
{
return !pData->doLoop;
}
// -----------------------------------------------------------------------
-void App::addIdleCallback(IdleCallback* const callback)
-{
- if (callback != nullptr)
- pData->idleCallbacks.push_back(callback);
-}
-
-void App::removeIdleCallback(IdleCallback* const callback)
-{
- if (callback != nullptr)
- pData->idleCallbacks.remove(callback);
-}
-
-// -----------------------------------------------------------------------
-
-void App::_addWindow(Window* const window)
-{
- if (window != nullptr)
- pData->windows.push_back(window);
-}
-
-void App::_removeWindow(Window* const window)
-{
- if (window != nullptr)
- pData->windows.remove(window);
-}
-
-void App::_oneShown()
-{
- if (++pData->visibleWindows == 1)
- pData->doLoop = true;
-}
-
-void App::_oneHidden()
-{
- if (--pData->visibleWindows == 0)
- pData->doLoop = false;
-}
-
-// -----------------------------------------------------------------------
-
END_NAMESPACE_DGL