My Project
D:/source/c++/Programme/sally/sally/sallyAPI/ListViewExt.h
Go to the documentation of this file.
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 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines