Пример #1
0
void _XControlManager::draw(const void * obj)	//手动描绘某个物体
{
	if(m_isAutoDraw != 0) return;
	if(findObjectID(obj) < 0) return;
	((_XControlBasic *)obj)->draw();
	((_XControlBasic *)obj)->drawUp();
}
Пример #2
0
int _XObjectManager::addAObject(void * object,_XObjectType type)
{
//	if(!m_isInited) return -1;
	if(m_nowObjectSum >= MAX_OBJECT_SUM) return -1;	//物件已经满了,注册失败
	if(type == OBJ_NULL) return -1;	//无效的物件不能注册
	if(object == NULL) return -1; 
	int ret = findObjectID(object);
	if(ret >= 0) return ret;	//如果物件已经注册,则防止重复注册
	//下面开始注册动作
	m_objectMouseState[m_nowObjectSum] = OBJ_STATE_NULL;		//默认状态
	//m_objectUpMouseState[m_nowObjectSum] = OBJ_STATE_NULL;		//默认状态

	m_pObject[m_nowObjectSum] = object;		//初始化指针无效
	m_objectType[m_nowObjectSum] = type;	//无效的物件类型
	m_objectMousePoint[m_nowObjectSum].set(0.0f,0.0f);
	m_objectKeyOption[m_nowObjectSum] = OBJ_OPTION_NULL;
	m_objectSetState[m_nowObjectSum] = OBJ_OPTION_STATE_NULL;
	
	m_objectEditParm[m_nowObjectSum] = -1;

	//初始化物件的状态
	m_objCanEdit[m_nowObjectSum] = XFalse;	//不可编辑
	m_objBeSelect[m_nowObjectSum] = XFalse;	//不被选择
	
	++ m_nowObjectSum;
	//printf("ObjectSum:%d\n",m_nowObjectSum);
	return m_nowObjectSum - 1;
}
Пример #3
0
XBool XCtrlManagerBase::addAFunction(void (* function)())			//注册一个物件,返回注册的ID,实际上是序列编号,-1为注册失败
{
	if(findObjectID(function) >= 0) return XFalse;				//防止物件重复注册
	XCtrlObjetInfo tmp;
	tmp.pFunction = function;
	m_ctrlDrawOrderMap.push_back(m_ctrlObjInfos.size());
	m_ctrlObjInfos.push_back(tmp);
//	printf("add one ctrl obj:%d\n",m_objectSum - 1);
	return XTrue;
}
Пример #4
0
int _XControlManager::addAObject(void (* function)())			//注册一个物件,返回注册的ID,实际上是序列编号,-1为注册失败
{
	if(m_objectSum >= MAX_CTRL_OBJ_SUM) return 0;		//物件的数量已经超过上限了
	if(findObjectID(function) >= 0) return 0;				//防止物件重复注册
	m_pObject[m_objectSum].pFunction = function;
	m_objectType[m_objectSum] = CTRL_OBJ_FUNCTION;
	m_objectDrawOrderMap[m_objectSum] = m_objectSum;
	++ m_objectSum;
//	printf("add one ctrl obj:%d\n",m_objectSum - 1);
	return 1;
}
Пример #5
0
int _XControlManager::addAObject(void * object,_XCtrlObjType type)
{
	if(m_objectSum >= MAX_CTRL_OBJ_SUM) return 0;		//物件的数量已经超过上限了
	if(findObjectID(object) >= 0) return 0;				//防止物件重复注册
	m_pObject[m_objectSum].pObject = object;
	m_objectType[m_objectSum] = type;
	m_objectDrawOrderMap[m_objectSum] = m_objectSum;
	++ m_objectSum;
//	printf("add one ctrl obj:%d\n",m_objectSum - 1);
	return 1;
}
Пример #6
0
XBool XCtrlManagerBase::addACtrl(XControlBasic* object)
{
	if(object == NULL) return XFalse;
	if(object->m_ctrlSpecialType == CTRL_TYPE_NORMAL)
	{
		if(findObjectID(object) >= 0) return XFalse;				//防止物件重复注册
		XCtrlObjetInfo tmp;
		tmp.pObject = object;
		tmp.needInput = XTrue;
		tmp.needDraw = XTrue;
		m_ctrlDrawOrderMap.push_back(m_ctrlObjInfos.size());
		m_ctrlObjInfos.push_back(tmp);
	//	printf("add one ctrl obj:%d\n",m_objectSum - 1);
	}else
	{
		if(findSpecialObjectID(object) >= 0) return XFalse;
		m_specialCtrls.push_back(object);
	}
	return XTrue;
}