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; }
kGUIMovieControlObj::~kGUIMovieControlObj() { if(m_eventactive) SetMovie(0); }