Crazy Eddie's GUI System
0.8.4
|
00001 /*********************************************************************** 00002 created: 02/8/2010 00003 author: Martin Preisler 00004 00005 purpose: Defines abstract base class for layout containers 00006 *************************************************************************/ 00007 /*************************************************************************** 00008 * Copyright (C) 2004 - 2010 Paul D Turner & The CEGUI Development Team 00009 * 00010 * Permission is hereby granted, free of charge, to any person obtaining 00011 * a copy of this software and associated documentation files (the 00012 * "Software"), to deal in the Software without restriction, including 00013 * without limitation the rights to use, copy, modify, merge, publish, 00014 * distribute, sublicense, and/or sell copies of the Software, and to 00015 * permit persons to whom the Software is furnished to do so, subject to 00016 * the following conditions: 00017 * 00018 * The above copyright notice and this permission notice shall be 00019 * included in all copies or substantial portions of the Software. 00020 * 00021 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 00022 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00023 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 00024 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 00025 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 00026 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 00027 * OTHER DEALINGS IN THE SOFTWARE. 00028 ***************************************************************************/ 00029 #ifndef _CEGUISequentialLayoutContainer_h_ 00030 #define _CEGUISequentialLayoutContainer_h_ 00031 00032 #include "./LayoutContainer.h" 00033 00034 #if defined(_MSC_VER) 00035 # pragma warning(push) 00036 # pragma warning(disable : 4251) 00037 #endif 00038 00039 // Start of CEGUI namespace section 00040 namespace CEGUI 00041 { 00042 00051 class CEGUIEXPORT SequentialLayoutContainer : public LayoutContainer 00052 { 00053 public: 00054 /************************************************************************* 00055 Event name constants 00056 *************************************************************************/ 00058 static const String EventNamespace; 00059 00061 static const String EventChildOrderChanged; 00062 00073 SequentialLayoutContainer(const String& type, const String& name); 00074 00079 virtual ~SequentialLayoutContainer(void); 00080 00085 size_t getPositionOfChild(Window* wnd) const; 00086 00091 size_t getPositionOfChild(const String& wnd) const; 00092 00097 Window* getChildAtPosition(size_t position) const; 00098 00103 virtual void swapChildPositions(size_t wnd1, size_t wnd2); 00104 00109 void swapChildren(Window* wnd1, Window* wnd2); 00110 00115 void swapChildren(const String& wnd1, Window* wnd2); 00116 00121 void swapChildren(Window* wnd1, const String& wnd2); 00122 00127 void swapChildren(const String& wnd1, const String& wnd2); 00128 00136 virtual void moveChildToPosition(Window* wnd, size_t position); 00137 00145 void moveChildToPosition(const String& wnd, size_t position); 00146 00156 void moveChild(Window* window, int delta = 1); 00157 00162 void addChildToPosition(Window* window, size_t position); 00163 00168 void removeChildFromPosition(size_t position); 00169 00170 protected: 00179 virtual void onChildOrderChanged(WindowEventArgs& e); 00180 }; 00181 00182 } // End of CEGUI namespace section 00183 00184 #if defined(_MSC_VER) 00185 # pragma warning(pop) 00186 #endif 00187 00188 #endif // end of guard _CEGUISequentialLayoutContainer_h_ 00189