• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List

CEGUISequentialLayoutContainer.h

00001 /***********************************************************************
00002     filename:   CEGUISequentialLayoutContainer.h
00003     created:    02/8/2010
00004     author:     Martin Preisler
00005 
00006     purpose:    Defines abstract base class for layout containers
00007 *************************************************************************/
00008 /***************************************************************************
00009  *   Copyright (C) 2004 - 2010 Paul D Turner & The CEGUI Development Team
00010  *
00011  *   Permission is hereby granted, free of charge, to any person obtaining
00012  *   a copy of this software and associated documentation files (the
00013  *   "Software"), to deal in the Software without restriction, including
00014  *   without limitation the rights to use, copy, modify, merge, publish,
00015  *   distribute, sublicense, and/or sell copies of the Software, and to
00016  *   permit persons to whom the Software is furnished to do so, subject to
00017  *   the following conditions:
00018  *
00019  *   The above copyright notice and this permission notice shall be
00020  *   included in all copies or substantial portions of the Software.
00021  *
00022  *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
00023  *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
00024  *   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
00025  *   IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
00026  *   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
00027  *   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
00028  *   OTHER DEALINGS IN THE SOFTWARE.
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 // Start of CEGUI namespace section
00041 namespace CEGUI
00042 {
00043 
00052 class CEGUIEXPORT SequentialLayoutContainer : public LayoutContainer
00053 {
00054 public:
00055     /*************************************************************************
00056         Event name constants
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 } // End of  CEGUI namespace section
00198 
00199 #if defined(_MSC_VER)
00200 #   pragma warning(pop)
00201 #endif
00202 
00203 #endif  // end of guard _CEGUISequentialLayoutContainer_h_
00204 

Generated on Fri Nov 19 2010 12:01:20 for Crazy Eddies GUI System by  doxygen 1.7.2