Example #1
0
        private void deleteKeyframe(Keyframe key)
        {
            Keyframes keys        = currentSlide.keys;
            var       victimIndex = keys.IndexOf(key);

            if (currentKeyframeIndex == victimIndex)
            {
                if (currentKeyframeIndex == (keys.Count - 1))
                {
                    selectKeyframe(keys[currentKeyframeIndex - 1]);
                }
                else
                {
                    selectKeyframe(keys[currentKeyframeIndex + 1]);
                }
            }

            KeyframeControl kfc = key.keyframeControl;

            keyframePanel.Children.Remove(kfc);
            keys.Remove(key);

            if (currentKeyframeIndex > victimIndex)
            {
                currentKeyframeIndex--;
            }
        }
Example #2
0
        public void selectKeyframe(Keyframe key)
        {
            Keyframes keys          = currentSlide.keys;
            int       keyFrameIndex = keys.IndexOf(key);

            if (currentKeyframeIndex >= 0)
            {
                Keyframe        oldKey       = keys[currentKeyframeIndex];
                KeyframeControl oldKFControl = oldKey.keyframeControl;
                unBindKFC(oldKFControl, oldKey);
                oldKFControl.DeSelect();
            }

            currentKeyframeIndex = keyFrameIndex;

            imageCropper.updateLayout();
            imageCropper.cropZoom = key.zoomFactor;
            imageCropper.cropX    = key.x;
            imageCropper.cropY    = key.y;

            imageCropper.updateLayout();

            KeyframeControl kfControl = key.keyframeControl;

            kfControl.Select();

            Binding xBinding = new Binding("cropX")
            {
                Source = imageCropper,
                Mode   = BindingMode.OneWay
            };

            kfControl.xTb.SetBinding(TextBox.TextProperty, xBinding);

            Binding yBinding = new Binding("cropY")
            {
                Source = imageCropper,
                Mode   = BindingMode.OneWay
            };

            kfControl.yTb.SetBinding(TextBox.TextProperty, yBinding);

            Binding zoomBinding = new Binding("cropZoom")
            {
                Source = imageCropper,
                Mode   = BindingMode.OneWay
            };

            kfControl.zoomTb.SetBinding(TextBox.TextProperty, zoomBinding);
        }
Example #3
0
        private int dropDirection(DragEventArgs e, Keyframe target_key)
        {
            KeyframeControl kfc = target_key.keyframeControl;
            Point           p   = e.GetPosition(kfc);

            if (p.X < (kfc.ActualWidth / 2))
            {
                return(LEFT);
            }
            else
            {
                return(RIGHT);
            }
        }
Example #4
0
        private void unBindKFC(KeyframeControl kfc, Keyframe key)
        {
            if (kfc == null)
            {
                return;
            }
            BindingOperations.ClearBinding(kfc.xTb, TextBox.TextProperty);
            BindingOperations.ClearBinding(kfc.yTb, TextBox.TextProperty);
            BindingOperations.ClearBinding(kfc.zoomTb, TextBox.TextProperty);

            // because clearing the binding clears the targets
            kfc.xTb.Text    = key.x.ToString();
            kfc.yTb.Text    = key.y.ToString();
            kfc.zoomTb.Text = key.zoomFactor.ToString();
        }
Example #5
0
        public void addKeyframeControl(Keyframe key, int insertIndex = -1)
        {
            KeyframeControl kfControl = new KeyframeControl();

            kfControl.DeSelect();
            key.keyframeControl = kfControl;
            if (insertIndex == -1)
            {
                keyframePanel.Children.Add(kfControl);
            }
            else
            {
                keyframePanel.Children.Insert(insertIndex, kfControl);
            }

            kfControl.PreviewMouseUp += delegate(object sender, MouseButtonEventArgs e) { keyFrameClick(sender, e, key); };

            kfControl.PreviewMouseDown += delegate(object sender, MouseButtonEventArgs e) { keyframePreviewMouseDown(sender, e, key); };
            kfControl.MouseMove        += delegate(object sender, MouseEventArgs e) { keyframeMouseMove(sender, e, key); };
            kfControl.DragOver         += delegate(object sender, DragEventArgs e) { keyframeDragOver(sender, e, key); };
            kfControl.Drop             += delegate(object sender, DragEventArgs e) { keyframeDrop(sender, e, key); };
            kfControl.GiveFeedback     += delegate(object sender, GiveFeedbackEventArgs e) { keyframeGiveFeedback(sender, e, key); };

            kfControl.xTb.Text    = key.x.ToString();
            kfControl.yTb.Text    = key.y.ToString();
            kfControl.zoomTb.Text = key.zoomFactor.ToString();
            kfControl.durTb.Text  = key.duration.ToString();

            kfControl.xTb.TextChanged    += delegate(object sender, TextChangedEventArgs e) { kfControlChangeEvent(sender, e, key); };
            kfControl.yTb.TextChanged    += delegate(object sender, TextChangedEventArgs e) { kfControlChangeEvent(sender, e, key); };
            kfControl.zoomTb.TextChanged += delegate(object sender, TextChangedEventArgs e) { kfControlChangeEvent(sender, e, key); };
            kfControl.durTb.TextChanged  += delegate(object sender, TextChangedEventArgs e) { kfControlChangeEvent(sender, e, key); };

            kfControl.CMCut.Click                += delegate(object sender, RoutedEventArgs e) { cutKeyframeClick(sender, e, key); };
            kfControl.CMPaste.Click              += delegate(object sender, RoutedEventArgs e) { pasteKeyframeClick(sender, e, key); };
            kfControl.CMInsert.Click             += delegate(object sender, RoutedEventArgs e) { insertKeyframeClick(sender, e, key); };
            kfControl.KeyframeContextMenu.Opened += delegate(object sender, RoutedEventArgs e) { keyframeContextMenuOpened(sender, e, key); };
        }
Example #6
0
        public void selectSlide(int slideIndex, Boolean unbindOld = true)
        {
            if (slideIndex < 0)
            {
                return;
            }

            currentSlide.slideControl.DeSelect();
            if (unbindOld)
            {
                Keyframe        oldKey       = currentSlide.keys[currentKeyframeIndex];
                KeyframeControl oldKFControl = oldKey.keyframeControl;
                unBindKFC(oldKFControl, oldKey);
            }
            currentSlideIndex = slideIndex;
            currentSlide.slideControl.Select();
            currentKeyframeIndex = 0;
            var bitmap = Util.BitmapFromUri(slides[slideIndex].uri);

            imageCropper.image.Source = bitmap;

            initializeKeysUI(currentSlide);
            caption.Text = currentSlide.fileName + " (" + bitmap.PixelWidth + " x " + bitmap.PixelHeight + ")  " + (slideIndex + 1) + " of " + slides.Count;
        }