void Forward() { if(HasNext()) { transition = TransitionManager.CreateFromName (slide.images[CurrentIndex].Transition); SlideImage source = ResizeImage(CurrentIndex); transition.Source = source; SlideImage target = ResizeImage(CurrentIndex + 1); transition.Target = target; transition.Frames = transition.Source.Project.Details.FramesPerSecond * slide.images[CurrentIndex].TransitionTime; uint time = (uint)(1000/transition.Source.Project.Details.FramesPerSecond); time = time < MinTime ? MinTime : time; GLib.Timeout.Add(time, new GLib.TimeoutHandler(OnNextSlide)); } else { Pause(); } }
public void UpdateTransitionType(string type) { if (type == string.Empty || type.Equals (TransitionManager.None.Name)) { timer.Enabled = false; images_transition = null; return; } images_transition = TransitionManager.CreateFromName (type); timer.Enabled = true; images_transition.Source = slide_a; images_transition.Target = slide_b; images_transition.Frames = 25 * 3; images_transition.Reset (); next = images_transition.MoveNext (); timer.Interval = 40; timer.Enabled = true; QueueDraw (); }
void ClearTransition() { if(transition != null) { transition.Source.ReleasePixels(); transition.Target.ReleasePixels(); transition = null; } }