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 // virtual class for scrolling panels
00039 class LLScrollingPanel : public LLPanel
00040 {
00041 public:
00042         LLScrollingPanel(const LLString& name, const LLRect& rect)
00043                 : LLPanel(name, rect)
00044         {
00045         }
00046         virtual void updatePanel(BOOL allow_modify) = 0;
00047         
00048 };
00049         
00050 // A set of panels that are displayed in a vertical sequence inside a scroll container.
00051 class LLScrollingPanelList : public LLUICtrl
00052 {
00053 public:
00054         LLScrollingPanelList(const LLString& name, const LLRect& rect)
00055                 :       LLUICtrl(name, rect, TRUE, NULL, NULL, FOLLOWS_LEFT | FOLLOWS_BOTTOM ) {}
00056 
00057         virtual void setValue(const LLSD& value);
00058         virtual EWidgetType getWidgetType() const;
00059         virtual LLString getWidgetTag() const;
00060 
00061         virtual LLXMLNodePtr getXML(bool save_children) const;
00062         
00063         virtual void            draw();
00064 
00065         void                            clearPanels();
00066         void                            addPanel( LLScrollingPanel* panel );
00067         void                            updatePanels(BOOL allow_modify);
00068 
00069         static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
00070         
00071 protected:
00072         void                            updatePanelVisiblilty();
00073 
00074 protected:
00075         std::deque<LLScrollingPanel*> mPanelList;
00076 };

Generated on Thu Jul 1 06:09:05 2010 for Second Life Viewer by  doxygen 1.4.7