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 #ifndef _CEGUISequentialLayoutContainer_h_
00031 #define _CEGUISequentialLayoutContainer_h_
00032
00033 #include "CEGUILayoutContainer.h"
00034
00035 #if defined(_MSC_VER)
00036 # pragma warning(push)
00037 # pragma warning(disable : 4251)
00038 #endif
00039
00040
00041 namespace CEGUI
00042 {
00043
00052 class CEGUIEXPORT SequentialLayoutContainer : public LayoutContainer
00053 {
00054 public:
00055
00056
00057
00059 static const String EventNamespace;
00060
00062 static const String EventChildWindowOrderChanged;
00063
00074 SequentialLayoutContainer(const String& type, const String& name);
00075
00080 virtual ~SequentialLayoutContainer(void);
00081
00086 size_t getPositionOfChildWindow(Window* wnd) const;
00087
00092 size_t getPositionOfChildWindow(const String& wnd) const;
00093
00098 Window* getChildWindowAtPosition(size_t position) const;
00099
00104 virtual void swapChildWindowPositions(size_t wnd1, size_t wnd2);
00105
00110 void swapChildWindows(Window* wnd1, Window* wnd2);
00111
00116 void swapChildWindows(const String& wnd1, Window* wnd2);
00117
00122 void swapChildWindows(Window* wnd1, const String& wnd2);
00123
00128 void swapChildWindows(const String& wnd1, const String& wnd2);
00129
00137 virtual void moveChildWindowToPosition(Window* wnd, size_t position);
00138
00146 void moveChildWindowToPosition(const String& wnd, size_t position);
00147
00157 void moveChildWindow(Window* window, int delta = 1);
00158
00163 void addChildWindowToPosition(Window* window, size_t position);
00164
00169 void addChildWindowToPosition(const String& window, size_t position);
00170
00175 void removeChildWindowFromPosition(size_t position);
00176
00177 protected:
00186 virtual void onChildWindowOrderChanged(WindowEventArgs& e);
00187
00189 virtual bool testClassName_impl(const String& class_name) const
00190 {
00191 if (class_name == "SequentialLayoutContainer") return true;
00192
00193 return LayoutContainer::testClassName_impl(class_name);
00194 }
00195 };
00196
00197 }
00198
00199 #if defined(_MSC_VER)
00200 # pragma warning(pop)
00201 #endif
00202
00203 #endif // end of guard _CEGUISequentialLayoutContainer_h_
00204