diff options
author | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2004-12-17 13:45:49 +0000 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2004-12-17 13:45:49 +0000 |
commit | d0e1dbef4fdad5dd61f2e513c5802e384c5ba642 (patch) | |
tree | c21d0e559d50f7a065987a1e7b14f1579a6a6d5f /src/gui/window.h | |
parent | ecd898ab4bf88737d4de51cb71fed585c76fabe6 (diff) | |
download | mana-d0e1dbef4fdad5dd61f2e513c5802e384c5ba642.tar.gz mana-d0e1dbef4fdad5dd61f2e513c5802e384c5ba642.tar.bz2 mana-d0e1dbef4fdad5dd61f2e513c5802e384c5ba642.tar.xz mana-d0e1dbef4fdad5dd61f2e513c5802e384c5ba642.zip |
Added window class based on Guichan by none other than nym!
Diffstat (limited to 'src/gui/window.h')
-rw-r--r-- | src/gui/window.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/gui/window.h b/src/gui/window.h new file mode 100644 index 00000000..99ebfdec --- /dev/null +++ b/src/gui/window.h @@ -0,0 +1,67 @@ +/* + * The Mana World + * Copyright 2004 The Mana World Development Team + * + * This file is part of The Mana World. + * + * The Mana World 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. + * + * The Mana World 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 The Mana World; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __WINDOW_H__ +#define __WINDOW_H__ + +#include <iostream> +#include <allegro.h> +#include <guichan.hpp> + +class WindowContainer : public gcn::Container, public gcn::MouseListener +{ + private: + std::string caption; //title bar caption + gcn::Label* captionLabel; //TItle bar caption + int x, y; //x and y positions of the window + int z; //z position of window + int mousePX, mousePY; //Mouse down location relative to 0,0 of window + int snapSize; //Snap to window edge + bool mouseDown; //mouse button state + gcn::Color titlebarColor; //title bar color + + BITMAP *dLeft, *dMid, *dRight; + + public: + int titlebarHeight; //height of title bar + + //constructor + WindowContainer(std::string text = "Window"); + ~WindowContainer(); + + //draw window + void draw(gcn::Graphics* graphics); + + //add to stop compiler complaining + void add(Widget *w); + //new add + void add(Widget *w, int x, int y); + + void setDimension(const gcn::Rectangle& dimension); + + //Mouse handling + void mousePress(int mx, int my, int button); + void mouseRelease(int mx, int my, int button); + void mouseMotion(int mx, int my); + void mouseOut(); +}; + +#endif |