00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055 #ifndef GCN_CONTAINER_HPP
00056 #define GCN_CONTAINER_HPP
00057
00058 #include <list>
00059
00060 #include "guichan/basiccontainer.h"
00061 #include "guichan/graphics.h"
00062 #include "guichan/platform.h"
00063
00064 namespace gcn
00065 {
00073 class GCN_CORE_DECLSPEC Container: public BasicContainer
00074 {
00075 public:
00076
00082 Container();
00083
00087 virtual ~Container();
00088
00099 virtual void setOpaque(bool opaque);
00100
00107 virtual bool isOpaque() const;
00108
00115 virtual void add(Widget* widget);
00116
00125 virtual void add(Widget* widget, int x, int y);
00126
00135 virtual void remove(Widget* widget);
00136
00142 virtual void clear();
00143
00144
00145
00146
00147 virtual void draw(Graphics* graphics);
00148
00149 virtual void drawBorder(Graphics* graphics);
00150
00151 virtual void logic();
00152
00153 virtual void _setFocusHandler(FocusHandler* focusHandler);
00154
00155 virtual void _mouseInputMessage(const MouseInput &mouseInput);
00156
00157 virtual void _mouseOutMessage();
00158
00159
00160
00161
00162 virtual void moveToTop(Widget* widget);
00163
00164 virtual void moveToBottom(Widget* widget);
00165
00166 virtual void _announceDeath(Widget *widget);
00167
00168 virtual void getDrawSize(int& width, int& height, Widget* widget);
00169
00170 virtual void setDirty(bool dirty);
00171 virtual bool getDirty() const;
00172
00173 protected:
00174
00181 virtual void drawChildren(Graphics* graphics);
00182
00188 virtual void logicChildren();
00189
00190 Widget* mWidgetWithMouse;
00191 typedef std::list<Widget*> WidgetList;
00192 typedef WidgetList::iterator WidgetIterator;
00193 typedef WidgetList::const_iterator WidgetConstIterator;
00194 WidgetList mWidgets;
00195 bool mOpaque;
00196 };
00197 }
00198
00199 #endif // end GCN_CONTAINER_HPP