diff options
author | Jared Adams <jaxad0127@gmail.com> | 2010-03-02 13:42:14 +0000 |
---|---|---|
committer | Jared Adams <jaxad0127@gmail.com> | 2010-03-02 13:42:14 +0000 |
commit | 0c8c8cf7ea63def0d454f30227584a5f3062c013 (patch) | |
tree | 9929ddd6c0ecaffef0d75411eeaea2f9fa7fbdfd /src/gui/widgets/windowcontainer.h | |
parent | 4ff5c3b854215b1f55e70106a4c53225fc953619 (diff) | |
download | mana-0c8c8cf7ea63def0d454f30227584a5f3062c013.tar.gz mana-0c8c8cf7ea63def0d454f30227584a5f3062c013.tar.bz2 mana-0c8c8cf7ea63def0d454f30227584a5f3062c013.tar.xz mana-0c8c8cf7ea63def0d454f30227584a5f3062c013.zip |
Revert "Merge WindowContainer into Viewport and remove extra members"
This reverts commit 67e678094b9fddd21fb3c690130e772937ab2746.
Conflicts:
src/gui/gui.cpp
src/gui/viewport.cpp
Diffstat (limited to 'src/gui/widgets/windowcontainer.h')
-rw-r--r-- | src/gui/widgets/windowcontainer.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/gui/widgets/windowcontainer.h b/src/gui/widgets/windowcontainer.h new file mode 100644 index 00000000..2ec65d15 --- /dev/null +++ b/src/gui/widgets/windowcontainer.h @@ -0,0 +1,59 @@ +/* + * The Mana Client + * Copyright (C) 2004-2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * + * This file is part of The Mana Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef WINDOWCONTAINER_H +#define WINDOWCONTAINER_H + +#include "gui/widgets/container.h" + +/** + * A window container. This container adds functionality for more convenient + * widget (windows in particular) destruction. + * + * \ingroup GUI + */ +class WindowContainer : public Container +{ + public: + /** + * Do GUI logic. This functions adds automatic deletion of objects that + * volunteered to be deleted. + */ + void logic(); + + /** + * Schedule a widget for deletion. It will be deleted at the start of + * the next logic update. + */ + void scheduleDelete(gcn::Widget *widget); + + private: + /** + * List of widgets that are scheduled to be deleted. + */ + typedef std::list<gcn::Widget*> Widgets; + typedef Widgets::iterator WidgetIterator; + Widgets mDeathList; +}; + +extern WindowContainer *windowContainer; + +#endif |