AUI_ERRCODE aui_MovieButton::InitCommon( MBCHAR *movie )
{
	m_movie = NULL;

	SetMovie( movie );


	m_drawMask = 0;

	return AUI_ERRCODE_OK;
}
AUI_ERRCODE aui_MovieButton::Idle( void )
{
	if ( m_movie )
	{

		if ( !m_movie->GetDestSurface() ) {
			m_movie->SetDestSurface( m_window->TheSurface() );
		}

		if ( !m_movie->IsOpen() ) {
			uint32 flags = m_flags;

			if (m_fullScreen) {
				flags |= k_AUI_MOVIE_PLAYFLAG_ONSCREEN;
			}

			RECT adjustedRect = {m_x, m_y, m_x+m_width, m_y+m_height};

			ToScreen(&adjustedRect);

			if (m_movie->Open(flags, g_c3ui->Secondary(), &adjustedRect) != AUI_ERRCODE_OK) {

				SetMovie(NULL);
				if (GetActionFunc())
					GetActionFunc()(this, AUI_BUTTON_ACTION_EXECUTE, 0, 0);
			}
		}

		if (m_movie)
		{
			if ( !m_movie->IsPlaying() && !m_movie->IsFinished())
			{
				m_movie->Play();
			}

			(void) m_movie->Process();

			if (m_movie->IsFinished() && !(m_flags & k_AUI_MOVIE_PLAYFLAG_PLAYANDHOLD))
			{
				if (m_ActionFunc)
					m_ActionFunc((aui_Control *)this, AUI_BUTTON_ACTION_EXECUTE, 0, NULL);
			}
		}
	}

	return AUI_ERRCODE_OK;
}
Beispiel #3
0
kGUIMovieControlObj::~kGUIMovieControlObj()
{
	if(m_eventactive)
		SetMovie(0);
}