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 #include "ParameterListItem.h" 00037 #include "ParameterKeyValue.h" 00038 #include "ParameterListItemHoldClick.h" 00039 00040 #define LISTVIEW_ITEM_HEIGHT CONTROL_HEIGHT 00041 00042 namespace SallyAPI 00043 { 00044 namespace GUI 00045 { 00054 00055 class DLL_API_SALLY CListViewExt : 00056 public SallyAPI::GUI::CForm 00057 { 00058 protected: 00059 std::vector<SallyAPI::GUI::CListViewItem*> m_vItems; 00060 SallyAPI::GUI::CScrollbar* m_pScrollbar; 00061 std::map<int, std::map<int, SallyAPI::GUI::CListViewButton*>> m_mButton; 00062 00063 int m_iStartItem; 00064 int m_iCols; 00065 int m_iRows; 00066 int m_iActive; 00067 b2World* m_pb2World; 00068 CBox2DObject* m_pb2Object; 00069 b2Body* m_pb2LeftBody; 00070 b2Body* m_pb2RightBody; 00071 int m_iOldPositionX; 00072 int m_iOldPositionY; 00073 std::map<int, int> m_mWidthList; 00074 bool m_bSorting; 00075 int m_iSortingMove; 00076 int m_iSortingControl; 00077 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 void OnCommandSorting(SallyAPI::GUI::SendMessage::CParameterBase* messageParameter); 00087 void OnCommandStartDragging(SallyAPI::GUI::CGUIBaseObject* reporter, int reporterId, SallyAPI::GUI::SendMessage::CParameterBase* messageParameter); 00088 void OnCommandItemHoldClicked(SallyAPI::GUI::CGUIBaseObject* reporter, int reporterId, SallyAPI::GUI::SendMessage::CParameterBase* messageParameter); 00089 00090 virtual void AddChild(SallyAPI::GUI::CControl* control); 00091 public: 00092 CListViewExt(SallyAPI::GUI::CGUIBaseObject* parent, int x, int y, int width, int height, 00093 int cols, std::map<int, int> widthList, int controlId = 0); 00094 virtual ~CListViewExt(); 00095 00096 virtual void Resize(int width, int height); 00097 00098 int GetScrollbarPosition(); 00099 int GetMaxDisplayedElements(); 00100 int GetListSize(); 00101 00102 void AddItem(SallyAPI::GUI::CListViewItem listItem, bool updateView = true); 00103 bool RemoveItem(int index); 00104 00105 void UpdateView(); 00106 void Clear(); 00107 std::vector<SallyAPI::GUI::CListViewItem*>* GetListItems(); 00108 SallyAPI::GUI::CListViewItem* GetItem(int index); 00109 00110 void SetActive(int index); 00111 int GetActive(); 00112 00113 int GetStartItem(); 00114 void SetStartItem(int startItem); 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 }