30 #ifndef _CEGUILayoutContainer_h_ 
   31 #define _CEGUILayoutContainer_h_ 
   33 #include "../Window.h" 
   38 #   pragma warning(push) 
   39 #   pragma warning(disable : 4251) 
   85     void markNeedsLayouting();
 
   91     bool needsLayouting() 
const;
 
   97     virtual void layout() = 0;
 
  104     virtual void layoutIfNecessary();
 
  107     virtual void update(
float elapsed);
 
  109     virtual const CachedRectf& getClientChildContentArea() 
const;
 
  111     virtual void notifyScreenAreaChanged(
bool recursive);
 
  115     virtual Rectf getUnclippedInnerRect_impl(
bool skipAllPixelAlignment) 
const;
 
  117     Rectf getClientChildContentArea_impl(
bool skipAllPixelAlignment) 
const;
 
  119     size_t getIdxOfChild(
Window* wnd) 
const;
 
  122     virtual void addChild_impl(
Element* element);
 
  124     virtual void removeChild_impl(
Element* element);
 
  138     virtual bool handleChildSized(
const EventArgs& e);
 
  149     virtual bool handleChildMarginChanged(
const EventArgs& e);
 
  160     virtual bool handleChildAdded(
const EventArgs& e);
 
  171     virtual bool handleChildRemoved(
const EventArgs& e);
 
  192     bool d_needsLayouting;
 
  194     typedef std::multimap<Window*, Event::Connection>  ConnectionTracker;
 
  198     CachedRectf d_clientChildContentArea;
 
  203 #if defined(_MSC_VER) 
  204 #   pragma warning(pop) 
  207 #endif  // end of guard _CEGUILayoutContainer_h_