My Project
D:/source/c++/Programme/sally/sally/sallyAPI/Form.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 
00031 #include "Control.h"
00032 #include <list>
00033 #include <set>
00034 
00035 namespace SallyAPI
00036 {
00037         namespace GUI
00038         {
00044 
00045                 enum ScrollType {SCROLL_TYPE_NONE, SCROLL_TYPE_NORMAL, SCROLL_TYPE_SMOOTH};
00046 
00055 
00056                 class DLL_API_SALLY CForm :
00057                         public SallyAPI::GUI::CControl
00058                 {
00059                 protected:
00060                         std::list<SallyAPI::GUI::CControl*>     m_GUIControlList;
00061                         
00062                         float                           m_fStartSendMessage;
00063                         float                           m_fStartMouseDown;
00064                         int                                     m_iSetMessage;
00065                         ScrollType                      m_eScrollType;
00066                         int                                     m_iScrollSmoothMouseOldX;
00067                         int                                     m_iScrollSmoothMouseOldY;
00068                         std::vector<int>        m_vScrollSmoothLastX;
00069                         std::vector<int>        m_vScrollSmoothLastY;
00070                         std::vector<float>      m_vScrollSmoothLastTime;
00071                         bool                            m_bHandleInputIfItIsChildHandled;
00072                         bool                            m_bAlwaysHandleInput;
00073                         bool                            m_bStopOnFirstSuccess;
00074                         bool                            m_bScrolling;
00075 
00076                         bool                    MoveX(int x);
00077                         bool                    MoveY(int y);
00078                         virtual void    RenderControl();
00079                         virtual void    UpdateControl();
00080                         virtual void    TimerScrollNormal();
00081                         virtual bool    ScrollTypeNormal(int x, int y);
00082                         virtual bool    ScrollTypeSmooth(int x, int y);
00083 
00084                         virtual bool    ProcessMouseDown(int x, int y);
00085                         virtual bool    ProcessMouseUp(int x, int y);
00086                         virtual bool    ProcessMouseMove(int x, int y);
00087                         virtual bool    ProcessMouseDoubleClick(int x, int y);
00088                 public:
00089                         CForm(SallyAPI::GUI::CGUIBaseObject* parent, int x, int y, int width, int height, int controlId = 0);
00090                         virtual ~CForm();
00091 
00092                         virtual void SendMessageToChilds(SallyAPI::GUI::CGUIBaseObject* reporter, int reporterId, int messageId, SallyAPI::GUI::SendMessage::CParameterBase* messageParameter = NULL);
00093                         virtual void SendMessageToParent(CGUIBaseObject* reporter, int reporterId, int messageId, SallyAPI::GUI::SendMessage::CParameterBase* messageParameter = NULL);
00094                         virtual void Timer(float timeDelta);
00095                         virtual void SetAlphaBlending(int alphaBlending);
00096                         virtual void Render();
00097                         virtual void Update();
00098 
00099                         virtual void AddChild(SallyAPI::GUI::CControl* control);
00100                         void    RemoveChild(std::list<CControl*>::iterator iter);
00101 
00102                         void    SetScrollType(SallyAPI::GUI::ScrollType scrollType);
00103                         void    SetHandleInputIfItIsChildHandled(bool handleInputIfItIsChildHandled);
00104                         void    SetAlwaysHandleInput(bool alwaysHandleInput);
00105                         void    SetStopHandleInputOnFirstSuccess(bool stopOnFirstSuccess);
00106                         bool    IsScrolling();
00107                 };
00108         }
00109 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines