Bubba-3D  0.9.0
Awesome game engine!
PositioningLayout.h
1 /*
2  * This file is part of Bubba-3D.
3  *
4  * Bubba-3D is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * Bubba-3D is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with Bubba-3D. If not, see http://www.gnu.org/licenses/.
16  */
17 #pragma once
18 
19 #include <Layout.h>
20 
21 class PositioningLayout : public Layout {
22 public:
23  virtual void addChild(Layout* child);
24 
25  virtual void addChild(Layout* child, Dimension x, Dimension y);
26 
30  virtual Dimension getWidth();
34  virtual Dimension getHeight();
35 
36  virtual void getGLSquares(float layoutXPos,float layoutYPos, float layoutWidth,
37  float layoutHeight, std::map<std::string, IHudDrawable*> *map);
38 
39  PositioningLayout(Dimension width, Dimension height);
40 
41  void checkChildCompatibility(Layout* child);
42 
43  virtual Layout* findById(std::string id);
44 
45  virtual void invokeListenersInternal(int x, int y, ListenerType listenerType, bool mayBeHit);
46 
47 protected:
49  Layout* child;
50  Dimension x;
51  Dimension y;
52  PositionedLayout(Layout* child, Dimension x, Dimension y) : child(child), x(x), y(y){
53  }
54  };
55 
56  Dimension width,height;
57  std::vector<PositionedLayout*> children;
58 };
virtual void getGLSquares(float layoutXPos, float layoutYPos, float layoutWidth, float layoutHeight, std::map< std::string, IHudDrawable * > *map)
virtual Dimension getHeight()
Definition: Layout.h:33
virtual Dimension getWidth()