OpenMW
|
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