bool wxAnimationCtrl::Create( wxWindow *parent, wxWindowID id, const wxAnimation& anim, const wxPoint& pos, const wxSize& size, long style, const wxString& name) { if (!PreCreation( parent, pos, size ) || !base_type::CreateBase(parent, id, pos, size, style & wxWINDOW_STYLE_MASK, wxDefaultValidator, name)) { wxFAIL_MSG( wxT("wxAnimationCtrl creation failed") ); return false; } SetWindowStyle(style); m_widget = gtk_image_new(); g_object_ref(m_widget); gtk_widget_show(m_widget); m_parent->DoAddChild( this ); PostCreation(size); SetInitialSize(size); if (anim.IsOk()) SetAnimation(anim); // init the timer used for animation m_timer.SetOwner(this); return true; }
void wxLEDPanel::SetAnimation(const wxAnimation ani) { if(!ani.IsOk() || ani.GetFrameCount()==0) return; m_ani = ani; m_text.Empty(); m_aniFrameNr = 0; m_content_mo.Init(ani.GetFrame(0)); // Find the place for the bitmap ResetPos(); // Set in field m_field.Clear(); m_field.SetDatesAt(m_pos,m_content_mo); // start timer m_scrollTimer.Stop(); m_scrollspeed = m_ani.GetDelay(0); m_scrollTimer.Start(m_scrollspeed,true); }
void wxAnimationCtrl::SetAnimation(const wxAnimation &anim) { if (IsPlaying()) Stop(); ResetAnim(); ResetIter(); // copy underlying GdkPixbuf object m_anim = anim.GetPixbuf(); // m_anim may be null in case wxNullAnimation has been passed if (m_anim) { // add a reference to the GdkPixbufAnimation g_object_ref(m_anim); if (!this->HasFlag(wxAC_NO_AUTORESIZE)) FitToAnimation(); } DisplayStaticImage(); }