summaryrefslogtreecommitdiff
path: root/src/gui/widgets/layouthelper.cpp
diff options
context:
space:
mode:
authorPhilipp Sehmisch <crush@themanaworld.org>2009-01-23 14:33:20 +0100
committerPhilipp Sehmisch <crush@themanaworld.org>2009-01-23 14:33:20 +0100
commit35fb23f4c447004b8d6488bff697932f7abdba73 (patch)
tree25e8e16b17cb01b726e0f48795f55b69f9347785 /src/gui/widgets/layouthelper.cpp
parentcae4571d182fcd64f6bef94552770768f651f30a (diff)
parent3d5cde132a10ccb1905688e29dca428aa772c777 (diff)
downloadmana-35fb23f4c447004b8d6488bff697932f7abdba73.tar.gz
mana-35fb23f4c447004b8d6488bff697932f7abdba73.tar.bz2
mana-35fb23f4c447004b8d6488bff697932f7abdba73.tar.xz
mana-35fb23f4c447004b8d6488bff697932f7abdba73.zip
Merge branch 'master' of git@gitorious.org:tmw/eathena
Diffstat (limited to 'src/gui/widgets/layouthelper.cpp')
-rw-r--r--src/gui/widgets/layouthelper.cpp63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/gui/widgets/layouthelper.cpp b/src/gui/widgets/layouthelper.cpp
new file mode 100644
index 00000000..410de98a
--- /dev/null
+++ b/src/gui/widgets/layouthelper.cpp
@@ -0,0 +1,63 @@
+/*
+ * The Mana World
+ * Copyright (C) 2009 The Mana World Development Team
+ *
+ * This file is part of The Mana World.
+ *
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include "layouthelper.h"
+
+LayoutHelper::LayoutHelper(gcn::Container *container):
+ mContainer(container)
+{
+ mContainer->addWidgetListener(this);
+}
+
+LayoutHelper::~LayoutHelper()
+{
+ mContainer->removeWidgetListener(this);
+}
+
+Layout &LayoutHelper::getLayout()
+{
+ return mLayout;
+}
+
+LayoutCell &LayoutHelper::place(int x, int y, gcn::Widget *wg, int w, int h)
+{
+ mContainer->add(wg);
+ return mLayout.place(wg, x, y, w, h);
+}
+
+ContainerPlacer LayoutHelper::getPlacer(int x, int y)
+{
+ return ContainerPlacer(mContainer, &mLayout.at(x, y));
+}
+
+void LayoutHelper::reflowLayout(int w, int h)
+{
+ mLayout.reflow(w, h);
+ mContainer->setSize(w, h);
+}
+
+void LayoutHelper::widgetResized(const gcn::Event &event)
+{
+ const gcn::Rectangle area = mContainer->getChildrenArea();
+ int w = area.width;
+ int h = area.height;
+ mLayout.reflow(w, h);
+}