示例#1
0
void getNextSound(int x, int y)
{
	if(hold && getControlID() != CONTROL_R)
		return;
	
	if(sndMode == TYPE_PLS)
	{
		nextPlaylistField();
		return;
	}
	
	getNextSoundInternal(true);
}
示例#2
0
void calendarMoveCursor(int x, int y)
{
	switch(getControlID())
	{
		case 0: // up button
			if(curDay > 7)
			{
				curDay -= 7;
			}
			break;
		case 1: // down button
			if(curDay < daysInMonth(curMonth-1,curYear)-6)
			{
				curDay += 7;
			}
			break;
		case 2: // left button
			--curDay;
			if(curDay < 1)
			{
				curDay = 1;
			}
			break;
		case 3: // right button
			++curDay;
			if(curDay > daysInMonth(curMonth-1,curYear))
			{
				curDay = daysInMonth(curMonth-1,curYear);
			}
			break;
		case 4: // edit up button
			moveKBCursorAbsolute(getPositionAbove());
			break;
		case 5: // edit down button
			moveKBCursorAbsolute(getPositionBelow());
			break;
		case 6: // edit left button
			if(getKBCursor() > 0)
			{
				moveKBCursorRelative(CURSOR_BACKWARD);
			}
			break;
		case 7: // edit right button
			if(!isReminderEnd(getKBCursor()))
			{
				moveKBCursorRelative(CURSOR_FORWARD);	
			}
			break;
	}
}
示例#3
0
_XBool _XSliderEx::initWithoutTex(const _XRect& area,float max,float min,
		_XSliderType type,const _XVector2 &fontPosition)
{
	if(m_isInited) return XFalse;	//防止重复初始化

	if(!m_mainSld.initWithoutTex(area,max,min,type,fontPosition)) return false;
	if(m_mainSld.m_typeVorH == SLIDER_TYPE_HORIZONTAL)
	{//水平模式
		m_secondarySld.initWithoutTex(_XRect(0.0f,0.0f,area.getWidth(),area.getHeight()),max,min,type);
		m_chooseBtn.initWithoutTex("+",XEE::systemFont,1.0f,_XRect(0.0f,0.0f,area.getHeight(),area.getHeight()),
			_XVector2(area.getHeight() * 0.5f,area.getHeight() * 0.5f));
	}else
	{//垂直模式
		m_secondarySld.initWithoutTex(_XRect(0.0f,0.0f,area.getWidth(),area.getHeight()),max,min,type);
		m_chooseBtn.initWithoutTex("+",XEE::systemFont,1.0f,_XRect(0.0f,0.0f,area.getWidth(),area.getWidth()),
			_XVector2(area.getWidth() * 0.5f,area.getWidth() * 0.5f));
	}
	m_mainSld.setCallbackFun(NULL,NULL,sliderExSldOnProc,sliderExSldProc,sliderExSldUpProc,sliderExSldChangeProc,sliderExSldMoveProc,this);
	m_secondarySld.disVisiable();
	m_secondarySld.setCallbackFun(NULL,NULL,NULL,NULL,NULL,sliderExSldProc,sliderExSldProc,this);
	m_chooseBtn.disVisiable();
	m_chooseBtn.setCallbackFun(NULL,NULL,NULL,NULL,sliderExBtnProc,this);
	if(m_funInit != NULL) m_funInit(m_pClass,getControlID());

	m_isVisiable = XTrue;
	m_isEnable = XTrue;
	m_isActive = XTrue;

#if WITH_OBJECT_MANAGER
	_XObjectManager::GetInstance().decreaseAObject(&m_mainSld);
	_XObjectManager::GetInstance().decreaseAObject(&m_secondarySld);
	_XObjectManager::GetInstance().decreaseAObject(&m_chooseBtn);
#endif

	_XControlManager::GetInstance().addAObject(this,CTRL_OBJ_SLIDER);	//在物件管理器中注册当前物件
#if WITH_OBJECT_MANAGER
	_XObjectManager::GetInstance().addAObject(this,OBJ_CONTROL);
#endif

	m_isInited = XTrue;
	setPosition(0.0f,0.0f);
	return XTrue;
}
示例#4
0
void getPrevSound(int x, int y)
{
	if(hold && getControlID() != CONTROL_L)
		return;
	
	if(sndMode == TYPE_PLS)
	{
		previousPlaylistField();
		return;
	}
	
	if(soundMode == SOUND_ONESHOT)
		return;
	
	destroySound();
	
	switch(soundMode)
	{
		case SOUND_NEXTFILE:
			if(getPrevSong()) // if there is a prev song
				soundLoaded = false;
			else
			{
				exitSound(0,0);
			}
			break;
		case SOUND_RANDFILE:
			int tmpCur = 0;
			
			if(prevRandomList(getFileName(), &tmpCur))
			{
				moveCursorAbsolute(tmpCur);
				soundLoaded = false;
			}
			else
			{
				destroyRandomList();
				exitSound(0,0);
			}
			break;
	}
}
示例#5
0
// onETouchEvent
// update touch event
bool CUIDPad::onEvent( const SEvent& gameEvent)
{
	if ( (m_controlID != -1 && m_controlID != gameEvent.EventControlID) || m_isEnable == false )
		return false;

	if ( gameEvent.EventType == EET_MOUSE_INPUT_EVENT )
	{
		// check mouse hit this button
		core::position2di mousePos(gameEvent.MouseInput.X,gameEvent.MouseInput.Y);

        // check mouse over on button
		m_mouseOver = m_rect.isPointInside(mousePos);
 
		float fw = 1.0f, fh = 1.0f;
		CMenuFx *menuFx = m_flashObj.getMenu();
		menuFx->getFxScaleRatio( &fw, &fh );
		
		// delta drag
		const float k_maxMove = 100.0f*fw;    
        
		if (gameEvent.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN && m_mouseOver == true )				
		{			
			// press
			m_controlID = gameEvent.EventControlID;

			// set flag
			CGameControl::getInstance()->setTouchIDStatus(m_controlID, 1);

			// set position
			m_dpadBasePos = mousePos;
			m_dpadMovePos = mousePos;

			// show flash obj
			m_dpadBase.setVisible( true );
			m_dpadMove.setVisible( true );

			// position ref to flash
			core::position2df flashMousePos(mousePos.X/fw, mousePos.Y/fh);

			m_dpadBase.setAbsolutePosition( (int)flashMousePos.X, (int)flashMousePos.Y );
			m_dpadMove.setAbsolutePosition( (int)flashMousePos.X, (int)flashMousePos.Y );
		}
		else if ( gameEvent.MouseInput.Event == EMIE_MOUSE_MOVED && getControlID() != -1 )
		{
			// move
			core::position2di delta = mousePos - m_dpadBasePos;
			core::position2df moveVec((float)delta.X, (float)delta.Y);

			float length = moveVec.getLength();
			if ( length > k_maxMove )
				length = k_maxMove;

			// calc run angle
			moveVec.normalize();
			
			// run event
			float f = length/k_maxMove;
			if ( f >= 0.3f )
            {
                CGameControl::getInstance()->setRunParameter( f, (float)moveVec.getAngle() - 90.0f);
                CGameControl::getInstance()->setRunMode(true);
            }
			else
                CGameControl::getInstance()->setRunMode(false);
            
			// recalc touch pos to render
			moveVec *= length;
			m_dpadMovePos = m_dpadBasePos + core::position2di((int)moveVec.X, (int)moveVec.Y);

			// set position
			core::position2df flashMousePos(m_dpadMovePos.X/fw, m_dpadMovePos.Y/fh);
			m_dpadMove.setAbsolutePosition( (int)flashMousePos.X, (int)flashMousePos.Y );
		}
		else if ( gameEvent.MouseInput.Event == EMIE_LMOUSE_LEFT_UP )
		{						
			// set flag
			if ( m_controlID != -1 )
				CGameControl::getInstance()->setTouchIDStatus(m_controlID, 0);
			
			// release
			m_controlID = -1;

			// hide flash obj
			m_dpadBase.setVisible( false );
			m_dpadMove.setVisible( false );

			// stop
            CGameControl::getInstance()->setRunMode(false);
		}

	}
	return false;
}