00001
00031 #include <vector>
00032
00033 #include "llui.h"
00034 #include "lluictrlfactory.h"
00035 #include "llview.h"
00036 #include "llpanel.h"
00037
00038
00039
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
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 };