#ifndef __XSROLL_H__
#define __XSROLL_H__ #include "CocoHead.h"
#include "XWindow.h" class ENGINE_API CXSroll : public CXWindow
{
public:
enum XSrollType
{
_SrollDirectionVertical = , //垂直
_SrollDirectionHorizontal = , //水平
_SrollVerticalTable = , //垂直选项(Table类型)
_SrollHorizontalTable = , //水平选项(Table类型)
_SrollDirectionBoth = ,
}; public:
CXSroll();
virtual ~CXSroll(); static CXSroll* create(int nId, CCPoint tPos, CCRect rect, const char* psPic = NULL, CXWindow* pParentWnd = NULL); virtual bool init( int nId, CCPoint tPos, CCRect rect, const char* psPic = NULL, CXWindow* pParentWnd = NULL ); virtual UI_TYPE getUIType(); void setSrollType(CXSroll::XSrollType eSrollType);
CXSroll::XSrollType getSrollType(); void addItem(CXWindow* pWnd);
void addItem(CXWindow* pWnd, int nZOrder); void setBounds(float fBounds);
float getBounds(); CXWindow* getItemChildById(int nItemId, int nChildId);
deque<CXWindow*>* getItemDequeById(int nItemId);
map<CXWindow*, deque<CXWindow*> >& getMapItem(); void setTouchDistribute(bool bDistribute); void setItemEnabled(unsigned int wIndex,unsigned int wCount); void setDisableDrag(bool bDisable); protected: virtual void visit(); virtual bool onMouseDown(CCTouch *pTouch, CCEvent *pEvent);
virtual void onMouseUp(CCTouch *pTouch, CCEvent *pEvent);
virtual void onMouseMove(CCTouch *pTouch, CCEvent *pEvent); void setItemPos(CXWindow* pWnd); void deaccelerateScrolling(float dt); void clippingToBounds(float dt); private:
CCNode* m_pContainer;
map<CXWindow*, deque<CXWindow*> > m_mapItem; //集装箱字典
deque<CXWindow*> m_dequeItem;
vector<CXWindow*> m_vecItem;//防止m_mapItem无序 XSrollType m_eSrollType;
float m_fItemPosLenght; //总长度 bool m_bSelected;
CCPoint m_tUnitMoveDist;
CCPoint m_tOriginalPos;
CCPoint m_tEndPos; CCPoint m_tContainerDownPos;
CCPoint m_tContainerUpPos;
CCPoint m_tContainerDragDist; unsigned int m_nTableFocusIndex;
float m_fBounds;
int m_nTableDragDistFold; //
CXWindow* m_pFocusWnd;
bool m_bFocusWndClick;
bool m_bDistributeTouch; bool m_bDisableDrag; }; #endif//__XSROLL_H__

ENGINE_API CXSroll的更多相关文章

  1. ENGINE_API CXNoTouch

    /************************************************************************/ //屏蔽消息面板 //优先级默认为 TP_BOTT ...

  2. 《Note --- Unreal 4 --- Sample analyze --- StrategyGame(continue...)》

    ---------------------------------------------------------------------------------------------------- ...

  3. 《InsideUE4》-10-GamePlay架构(九)GameInstance

    一人之下,万人之上 引言 上篇我们讲到了UE在World之上,继续抽象出了Player的概念,包含了本地的ULocalPlayer和网络的UNetConnection,并以此创建出了World中的Pl ...

  4. 《InsideUE4》-8-GamePlay架构(七)GameMode和GameState

    我的世界,我做主 引言 上文我们说到在Actor层次,UE用Controller来充当APawn的逻辑控制者,也有了可以接受玩家输入的PlayerController,和能自行行动的AIControl ...

  5. 《InsideUE4》-4-GamePlay架构(三)WorldContext,GameInstance,Engine

    Tags: InsideUE4 UE4深入学习QQ群: 456247757 引言 前文提到说一个World管理多个Level,并负责它们的加载释放.那么,问题来了,一个游戏里是只有一个World吗? ...

  6. ShooterGame 学习笔记1 PlayerPawn的两个Mesh的可见性

    GameMode Override 为 ShooterGame_TeamDeathMatch GameMode中设置的Default Pawn Class 为 PlayerPawn , PlayerP ...

  7. UE4里的渲染线程

    记的上次看过UniRx里的源代码,说是参考微软的响应式编程框架,响应式编程里的一些理论不细说,只单说UniRx里的事件流里的事件压入与执行,与UE4的渲染线程设计有很多相同之处,如果有了解响应式编程相 ...

  8. [UE4GamePlay架构(九)GameInstance(转)

    GameInstance这个类可以跨关卡存在,它不会因为切换关卡或者切换游戏模式而被销毁.然而,GameMode和PlayController就会再切换关卡或者游戏模式时被引擎销毁重置,这样他们里面的 ...

  9. CWidgetMgr---cpp

    #include "WidgetMgr.h" #include "XWidget.h" #include "Config.h" #inclu ...

随机推荐

  1. 在Windows上以服务方式运行 MSOPenTech/Redis

    ServiceStack.Redis 使用教程里 提到Redis最好还是部署到Linux下去,Windows只是用来做开发环境,现在这个命题发生改变了,在Windows上也可以部署生产环境的 Redi ...

  2. C++ Primer 学习笔记_91_用于大型程序的工具 --命名空间

    用于大型程序的工具 --命名空间 引言: 在一个给定作用域中定义的每一个名字在该作用域中必须是唯一的,对庞大.复杂的应用程序而言,这个要求可能难以满足.这样的应用程序的全局作用域中一般有很多名字定义. ...

  3. qsort(),sort()排序函数

    一.qsort()函数 功 能: 使用快速排序例程进行排序 头文件:stdlib.h 用 法: void qsort(void *base,int nelem,int width,int (*fcmp ...

  4. datagridview 纵向 横向 合并单元格

    datagridview 单元格合并:纵向以及横向合并参考了csdn上不知哪位的代码,具体哪位找不到连接了. 纵向合并: /// <summary> /// 纵向合并,即合并数据项的值 / ...

  5. 公司上线流程 pushonline_alpha

     这是在公司将服务部署上线的一个记录,只是部署很小的python脚本,各公司不同,参考性不是很大 开始吧(版本管理是git) 1.整理好代码后:git add xxx.py git commit -m ...

  6. BI项目简单备份策略

    在项目的开发中,备份是一个很重要的操作和良好的开发习惯,下面我们就针对BI相关项目的备份说一下备份策略 前端:Cognos 后端:SSIS+View+Procedure 服务器A装了Cognos内容库 ...

  7. [NPM] Avoid Duplicate Commands by Calling one NPM Script from Another

    We can get a lot of utility through CLI tools invoked via npm scripts. Many of these tools have APIs ...

  8. (C++)浅谈多态基类析构函数声明为虚函数

    主要内容: 1.C++类继承中的构造函数和析构函数 2.C++多态性中的静态绑定和动态绑定 3.C++多态性中析构函数声明为虚函数 1.C++类继承中的构造函数和析构函数 在C++的类继承中, 建立对 ...

  9. 同步网络时间到linux服务器(先修改时区再进行同步网络时间)

    查看时区:date -R 修改整个系统时区: rm -f /etc/localtime ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 网 ...

  10. ASP.NET找不到类型或命名空间名称怎么办

    如图所示,运行之后提示找不到类型或空间名称,右击有波浪线的代码,选择解析,using XXX   随后自动补上了程序集引用