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
00033 #ifndef PG_RECTLIST_H
00034 #define PG_RECTLIST_H
00035
00036 #include "paragui.h"
00037 #include "pgrect.h"
00038
00039 class PG_Widget;
00040
00046 class DECLSPEC PG_RectList {
00047
00048 public:
00049
00053 PG_RectList();
00054
00058 virtual ~PG_RectList();
00059
00066 void Add(PG_Widget* rect, bool front = false);
00067
00075 bool Remove(PG_Rect* rect);
00076
00084 PG_Widget* IsInside(const PG_Point& p);
00085
00086 PG_Widget* Find(int id, bool recursive = false );
00087
00088 PG_Widget* Find(const std::string& name, bool recursive = false );
00089
00095 void Blit();
00096
00104 void Blit(const PG_Rect& rect);
00105
00106 void Blit(const PG_Rect& rect, PG_Widget* first, PG_Widget* last = NULL);
00107
00115 bool BringToFront(PG_Widget* rect);
00116
00124 bool SendToBack(PG_Widget* rect);
00125
00126 inline PG_Widget* first() {
00127 return my_first;
00128 }
00129
00130 inline PG_Widget* last() {
00131 return my_last;
00132 }
00133
00134 void clear();
00135
00136 inline Uint32 size() {
00137 return my_count;
00138 }
00139
00140 protected:
00141
00142 PG_Widget* my_first;
00143
00144 PG_Widget* my_last;
00145
00146 Uint32 my_count;
00147 };
00148
00149 #endif // PG_RECTLIST_H