OpenMW
apps/openmw/mwgui/list.hpp
Go to the documentation of this file.
00001 #ifndef MWGUI_LIST_HPP
00002 #define MWGUI_LIST_HPP
00003 
00004 #include <MyGUI_ScrollView.h>
00005 
00006 namespace MWGui
00007 {
00008     namespace Widgets
00009     {
00013         class MWScrollView : public MyGUI::ScrollView
00014         {
00015             MYGUI_RTTI_DERIVED(MWScrollView)
00016         public:
00017             size_t getScrollPosition();
00018             void setScrollPosition(size_t);
00019             size_t getScrollRange();
00020         };
00021 
00026         class MWList : public MyGUI::Widget
00027         {
00028             MYGUI_RTTI_DERIVED(MWList)
00029         public:
00030             MWList();
00031 
00032             typedef MyGUI::delegates::CMultiDelegate2<const std::string&, int> EventHandle_StringInt;
00033             typedef MyGUI::delegates::CMultiDelegate1<MyGUI::Widget*> EventHandle_Widget;
00034 
00039             EventHandle_StringInt eventItemSelected;
00040 
00045             EventHandle_Widget eventWidgetSelected;
00046 
00047 
00051             void adjustSize();
00052 
00053             void addItem(const std::string& name);
00054             void addSeparator(); 
00055             void removeItem(const std::string& name);
00056             bool hasItem(const std::string& name);
00057             unsigned int getItemCount();
00058             std::string getItemNameAt(unsigned int at); 
00059             void clear();
00060 
00061             MyGUI::Widget* getItemWidget(const std::string& name);
00063 
00064         protected:
00065             void initialiseOverride();
00066 
00067             void redraw(bool scrollbarShown = false);
00068 
00069             void onMouseWheel(MyGUI::Widget* _sender, int _rel);
00070             void onItemSelected(MyGUI::Widget* _sender);
00071 
00072         private:
00073             MWGui::Widgets::MWScrollView* mScrollView;
00074             MyGUI::Widget* mClient;
00075 
00076             std::vector<std::string> mItems;
00077 
00078             int mItemHeight; // height of all items
00079         };
00080     }
00081 }
00082 
00083 #endif