llscrollingpanellist.h

Go to the documentation of this file.
00001 
00031 #include <vector>
00032 
00033 #include "llui.h"
00034 #include "lluictrlfactory.h"
00035 #include "llview.h"
00036 #include "llpanel.h"
00037 
00038 /*
00039  * Pure virtual class represents a scrolling panel.
00040  */
00041 class LLScrollingPanel : public LLPanel
00042 {
00043 public:
00044         LLScrollingPanel(const LLString& name, const LLRect& rect) : LLPanel(name, rect) { }
00045         virtual void updatePanel(BOOL allow_modify) = 0;
00046 };
00047 
00048 
00049 /*
00050  * A set of panels that are displayed in a vertical sequence inside a scroll container.
00051  */
00052 class LLScrollingPanelList : public LLUICtrl
00053 {
00054 public:
00055         LLScrollingPanelList(const LLString& name, const LLRect& rect)
00056                 :       LLUICtrl(name, rect, TRUE, NULL, NULL, FOLLOWS_LEFT | FOLLOWS_BOTTOM ) {}
00057 
00058         virtual void setValue(const LLSD& value) {};
00059 
00060         virtual LLXMLNodePtr getXML(bool save_children) const { return LLUICtrl::getXML(); }
00061         
00062         virtual void            draw();
00063 
00064         void                            clearPanels();
00065         void                            addPanel( LLScrollingPanel* panel );
00066         void                            updatePanels(BOOL allow_modify);
00067 
00068         static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
00069         
00070 private:
00071         void                            updatePanelVisiblilty();
00072 
00073         std::deque<LLScrollingPanel*> mPanelList;
00074 };

Generated on Fri May 16 08:32:56 2008 for SecondLife by  doxygen 1.5.5