#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. Last-Modified和If-Modified-Since

    Last-Modified 是由服务器往客户端发送的 HTTP 头 If-Modified-Since是由客户端往服务器发送的头 基础知识         1) 什么是”Last-Modified”? ...

  2. Spring核心之IoC——依赖注入

    在J2EE开发平台中,Spring是一种优秀的轻量级企业应用解决方案.Spring倡导一切从实际出发,它的核心技术就是IOC(控制反转)和AOP(面向切面编程)技术.本文用的Spring版本为spri ...

  3. iOS:判断引导页首次出现、版本更新

    判断引导页首次出现方式: //选择根控制器 +(void)chooseRootViewController{ //初始化Window窗口 [AppDelegate Delegate].window = ...

  4. iOS:切换视图时,反向传递数据方法二:代理

    代理: 1.发送信息的控制器设置一个代理,并自定义一个代理的方法,用来传递数据 2.接受信息的控制器遵循发送信息的控制器的协议 3.接受信息的控制器设置发送信息的控制器的代理为自己self 4.接受信 ...

  5. Postgresql死锁的处理

    今天遇到一个奇怪的现象,select和delete表时正常执行,但truncate和drop表时会一直运行,也不报错. 查了些资料才发现问题的原因,总结如下: "drop table &qu ...

  6. GPGPU OpenCL使用结构体数据

    OpenCL编程中可以使用结构体,只需要在核函数kernel中提供同样的结构体申明就可以啦. 如果在主函数中定义了结构体: typedef struct studentNode{ int age; f ...

  7. 硬件加速 Hardware Accelerated 绘制

    官方文档中对硬件加速的描述 原文地址:http://developer.android.com/guide/topics/graphics/hardware-accel.html Beginning ...

  8. 自动签到升级版(JS实现的每日定时任务)

    公司规定每日签到两次:日子太安逸了,有时候中午居然会忘记签到…… 于是,笔者寻思写一个自动签到的脚本:每天指定两个签到时段,每次打开页面,先检测当前是否为签到时段,如果在签到时段,则检查cookie中 ...

  9. luigi框架--关于python运行spark程序

    首先,目标是写个python脚本,跑spark程序来统计hdfs中的一些数据.参考了别人的代码,故用了luigi框架. 至于luigi的原理 底层的一些东西Google就好.本文主要就是聚焦快速使用, ...

  10. 使用SQL SERVER FOR XML PATH将多个结果集转换成一行并进行去重处理

    在一个医药行业的系统中需要根据患者的接触记录ID获取不同接触类型的集合,效果像这样     --患者接触记录信息,一个患者可以有N个不同的接触记录,每个接触记录又有N个接触类型记录 IF OBJECT ...