My Project
|
00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 00025 00026 00027 00028 #pragma once 00029 #include "Define.h" 00030 #include "Form.h" 00031 #include <vector> 00032 #include "ListViewButton.h" 00033 #include "ListViewItem.h" 00034 #include "Box2DObject.h" 00035 #include "Scrollbar.h" 00036 00037 #define LISTVIEW_ITEM_HEIGHT CONTROL_HEIGHT 00038 #define LISTVIEW_ITEM_NO 100 00039 #define LISTVIEW_ITEM_ACTION_NO 200 00040 00041 namespace SallyAPI 00042 { 00043 namespace GUI 00044 { 00053 00054 class DLL_API_SALLY CListView : 00055 public SallyAPI::GUI::CForm 00056 { 00057 protected: 00058 std::map<int, SallyAPI::GUI::CListViewButton*> m_mButtonItem; 00059 std::map<int, SallyAPI::GUI::CListViewButton*> m_mButtonAction; 00060 std::vector<SallyAPI::GUI::CListViewItem*> m_vItems; 00061 int m_iActionGraphic; 00062 std::vector<int> m_vPictureList; 00063 SallyAPI::GUI::CScrollbar* m_pScrollbar; 00064 00065 int m_iStartPicture; 00066 int m_iCols; 00067 int m_iRows; 00068 int m_iActive; 00069 bool m_bUseImageList; 00070 b2World* m_pb2World; 00071 CBox2DObject* m_pb2Object; 00072 b2Body* m_pb2LeftBody; 00073 b2Body* m_pb2RightBody; 00074 int m_iOldPositionX; 00075 int m_iOldPositionY; 00076 00077 void CreateListView(); 00078 void ResetListView(); 00079 int GetMaxItemStart(); 00080 00081 bool ResetBox2Object(); 00082 00083 void OnCommandScrollbarMoved(SallyAPI::GUI::CGUIBaseObject* reporter, SallyAPI::GUI::SendMessage::CParameterBase* messageParameter); 00084 void OnCommandDoubleclicked(int reporterId); 00085 void OnCommandMouseMove(SallyAPI::GUI::SendMessage::CParameterBase* messageParameter); 00086 00087 virtual void AddChild(SallyAPI::GUI::CControl* control); 00088 public: 00089 CListView(SallyAPI::GUI::CGUIBaseObject* parent, int x, int y, int width, int height, 00090 int cols, int actionGraphic, std::vector<int>& pictureList, int controlId = 0); 00091 CListView(SallyAPI::GUI::CGUIBaseObject* parent, int x, int y, int width, int height, 00092 int cols, int actionGraphic, int controlId = 0); 00093 virtual ~CListView(); 00094 00095 int GetMaxDisplayedElements(); 00096 int GetListSize(); 00097 00098 void AddItem(SallyAPI::GUI::CListViewItem listItem); 00099 bool RemoveItem(int index); 00100 00101 void UpdateView(); 00102 void Clear(); 00103 std::vector<SallyAPI::GUI::CListViewItem*>* GetListItems(); 00104 SallyAPI::GUI::CListViewItem* GetItem(int index); 00105 00106 void SetActive(int index); 00107 int GetActive(); 00108 00109 int GetStartItem(); 00110 void SetStartItem(int startItem); 00111 00112 void SetPictureList(std::vector<int>& pictureList); 00113 void RemovePictureList(); 00114 void SetActionImageId(int icon); 00115 00116 void ShowScrollbarIfNotScrollable(bool value); 00117 bool IsScrollbarVisibleIfNotScrollbable(); 00118 00119 virtual void SetAlphaBlending(int alphaBlending); 00120 virtual bool CheckProcessMouseUp(int x, int y); 00121 virtual bool CheckProcessMouseDown(int x, int y); 00122 virtual void Enable(bool enable); 00123 virtual void Timer(float timeDelta); 00124 virtual void SendMessageToChilds(SallyAPI::GUI::CGUIBaseObject* reporter, int reporterId, int messageId, SallyAPI::GUI::SendMessage::CParameterBase* messageParameter = NULL); 00125 virtual void SendMessageToParent(SallyAPI::GUI::CGUIBaseObject* reporter, int reporterId, int messageId, SallyAPI::GUI::SendMessage::CParameterBase* messageParameter = NULL); 00126 }; 00127 } 00128 }