//Determines user intent by checking location of drop against threshold and whether a clone exists (i.e. drag intent)
        private void Part_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
        {
            Part        p      = sender as Part;
            ScatterView parent = p.Parent as ScatterView;

            try
            {
                if (!(myClone == null))
                { //Clone has been created, indicating drag interaction
                    if (parent == null)
                    {
                        sw1.L0.L0_resultsSV.Items.Add(p);
                        p.PartInL0();
                        sw1.L0.L0_resultsSV.Items.Remove(p);
                    }
                    else
                    {
                        if (parent.Name == "L0_resultsSV")
                        { //Drops Part into L1
                            p.PartInL0();
                        }
                        else
                        { //Drops Part in L1Module
                            p.PartInL1();
                        }
                        parent.Items.Remove(p);
                    }
                }
                else
                {
                    if (parent == null)
                    {
                        return;        //In Primer Designer's StackPanel
                    }
                    Center = Original; //Reset center so non-drag interactions don't mess up positioning
                    if (parent.Name == "L1_prom" || parent.Name == "L1_rbs" || parent.Name == "L1_cds" || parent.Name == "L1_term")
                    {                  //If in an L1 palette
                        if (p.BorderBrush != Brushes.Gray)
                        {
                            //Restore original border
                            p.BorderBrush = Brushes.Gray;
                        }
                        else
                        {
                            p.BorderBrush = Brushes.Navy;
                        } //highlights border
                    }
                }
            }
            catch (Exception exc) { Console.WriteLine("Part Completed \n" + exc); }
        }
        /// <summary>
        ///     Makes menu bar drop down.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MenuBarWindow_ContainerManipulationCompleted(object sender,
                                                                  ContainerManipulationCompletedEventArgs e)
        {
            const double newOrientation = 0;
            double       orientation    = menuBar.ActualOrientation;

            var d  = new Duration(TimeSpan.FromMilliseconds(300));
            var da = new DoubleAnimation(orientation, newOrientation, d);
            var sb = new Storyboard();

            sb.Children.Add(da);

            Storyboard.SetTarget(da, menuBar);
            Storyboard.SetTargetProperty(da, new PropertyPath("Orientation"));
            sb.FillBehavior = FillBehavior.Stop;

            sb.Begin();
            menuBar.Orientation = newOrientation;

            double y = menuBar.Center.Y;

            var point = new Point(menuBar.Center.X, menuBar.Center.Y);

            point.X = 360;
            if (y < 280)
            {
                point.Y = 260;
            }

            else
            {
                point.Y = 530;
            }

            var da2 = new PointAnimation(menuBar.ActualCenter, point, d);

            var sb2 = new Storyboard();

            sb2.Children.Add(da2);

            Storyboard.SetTarget(da2, menuBar);
            Storyboard.SetTargetProperty(da2, new PropertyPath("Center"));
            sb2.FillBehavior = FillBehavior.Stop;

            sb2.Begin();
            menuBar.Center = point;
        }
        //Determines if snap-to behavior is appropriate and where to snap to
        private void Level1_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
        {
            ScatterViewItem L1 = (ScatterViewItem)sender;

            //If its center is within the threshold of low.Y or high.Y or L2
            if (L1.Center.Y < high.Y + snapThreshold)
            {
                L1.Center = new Point(low.X, high.Y);
            }
            if (L1.Center.Y > low.Y - snapThreshold)
            {
                L1.Center = new Point(low.X, low.Y);
            }
            if (L1.Center.Y > (sw1.L2.Center.Y - snapThreshold_L2))
            {
                L1.Center = new Point(low.X, sw1.L2.Center.Y - snapThreshold_L2);
            }
        }
 //When manipulation completed, check location for drop and transfer data to placeholder; then delete
 private void Sites_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
 {
     try
     {
         Sites s = sender as Sites;
         if (myClone != null)
         {
             Point pt = SurfaceWindow1.transformCoords(this, pd2.PD2_manual);
             if (pd2.PD2_buildTabs.SelectedIndex == 0) //If Manual is selected
             {
                 VisualTreeHelper.HitTest(pd2.PD2_manual, null, new HitTestResultCallback(sitesCallback), new PointHitTestParameters(pt));
             }
             ScatterView parent = (ScatterView)s.Parent;
             parent.Items.Remove(s);
         }
     }
     catch (Exception exc) { Console.WriteLine(exc); }
 }
Exemple #5
0
        //Determines user intent by checking location of drop against threshold and whether a clone exists (i.e. drag intent)
        private void L1Module_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
        {
            L1Module    l      = sender as L1Module;
            ScatterView parent = l.Parent as ScatterView;

            try
            {
                if (!(myClone == null))
                {
                    if ((parent.Name == "L1_permTab") || (parent.Name == "L1_manTab"))
                    {
                        //Drop L1Module into L2 or delete
                        l.L1ModuleInL1();
                    }
                    else
                    {
                        //Drop L1Module into L2Module or delete
                        l.L1ModuleInL2();
                    }

                    parent.Items.Remove(l);
                }
                else
                {
                    if (parent.Name == "L2_L1ModulesSV")
                    { //If in L2
                        if (l.BorderBrush != Brushes.White)
                        {
                            //Restore white border
                            l.BorderBrush = Brushes.White;
                        }
                        else
                        {
                            l.BorderBrush = Brushes.Navy;
                        } //highlights border
                    }
                }
            }
            catch (Exception exc) { Console.WriteLine("L1M Completd \n" + exc); }
        }
 //Allows trashing of the sequence SVI when you swipe it far enough to the right or left
 private void onDSManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
 {
     sw1.swipeToDelete((MenuDataSheet)sender);
 }
        private void TouchLeaveBubble(object sender, ContainerManipulationCompletedEventArgs e)
        {
            int durationNote = 0;
            ScatterViewItem bubble = new ScatterViewItem();
            bubble = e.Source as ScatterViewItem;
            Point bubbleCenter = bubble.ActualCenter;

            foreach (Bubble i in bubbles)
            {
                if (bubble.Name == ("b" + i.name))
                    durationNote = i.duration;
            }

            int width = int.Parse(GetWidth.Text);
            int height = int.Parse(GetHeight.Text);
            //int width = 1920;
            //int height = 1080;
            bubbleCenter.X = bubbleCenter.X * 1920 / width;
            bubbleCenter.Y = bubbleCenter.Y * 1080 / height;

            if (bubbleCenter.X <= 90) bubbleCenter.X = 120;
            else if (bubbleCenter.X >= 1830) bubbleCenter.X = 1800;
            else bubbleCenter.X = Math.Floor((bubbleCenter.X + 30) / 60) * 60;

            //"Applatissement" de la portée (MAJ : Switch -> Tableau !)
            int offset=offsettab[((long)bubbleCenter.X/60)];
            bubbleCenter.Y += offset;

            //Y dans le cadre portée ?
            //Si oui, animation
            //pas de else
            if (bubbleCenter.Y < 630 && bubbleCenter.Y > 105)
            {
                if (bubbleCenter.Y < 370)
                {
                    if (bubbleCenter.Y >= 335) bubbleCenter.Y = 335;
                    bubbleCenter.Y = Math.Floor((bubbleCenter.Y - 10) / 50) * 50 + 35;

                }
                else
                {
                    if (bubbleCenter.Y <= 405) bubbleCenter.Y = 405;
                    bubbleCenter.Y = Math.Floor((bubbleCenter.Y + 20) / 50) * 50 + 5;
                }

                //Partie son*******************************
                //Le son se déclenche quand la bulle est lachée
                //En fonction de sa portée, on place la note dans le tableau qui convient

                String res = "silence";
                int centreY = (int)bubbleCenter.Y;
                res = dictionary[centreY];

                int centreX = (int)bubbleCenter.X;
                {
                    if (centreY >= 335)
                        stave1.fillArray(centreX, centreY, durationNote, res);

                    else
                    {
                       stave2.fillArray(centreX, centreY, durationNote, res);
                    }
                }

                //fin Partie son*****************************

                bubbleCenter.Y -= offset;

                bubbleCenter.X = bubbleCenter.X * width / 1920;
                bubbleCenter.Y = bubbleCenter.Y * height / 1080;

                Storyboard stb = new Storyboard();
                PointAnimation moveCenter = new PointAnimation();

                moveCenter.From = bubble.ActualCenter;
                moveCenter.To = bubbleCenter;
                moveCenter.Duration = new Duration(TimeSpan.FromSeconds(0.15));
                bubble.Center = bubbleCenter;
                moveCenter.FillBehavior = FillBehavior.Stop;

                stb.Children.Add(moveCenter);

                Storyboard.SetTarget(moveCenter, bubble);
                Storyboard.SetTargetProperty(moveCenter, new PropertyPath(ScatterViewItem.CenterProperty));

                stb.Begin(this);

                bubble.Visibility = Visibility.Collapsed;
                bubble.Visibility = Visibility.Visible;

            }
        }
Exemple #8
0
        private void SviScatterManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e) {
            if (_fe.IsFullScreen) return;
            _svi.Opacity = _fe.OpacityNormal;
            const double dockwidth = 75;
            const double edge = 25;

            if (_fe.RemoveOnEdge) {
                if (_svi.Center.X > _sv.ActualWidth - edge || _svi.Center.X < edge ||
                    _svi.Center.Y > _sv.ActualHeight - edge || _svi.Center.Y < edge) {
                    RaiseEvent(new RoutedEventArgs(CloseEvent, this));
                    _fe.TriggerClosedEvent();
                }
            }

            if (_fe.ResetOnEdge) {
                if (_svi.Center.X > _sv.ActualWidth - edge || _svi.Center.X < edge ||
                    _svi.Center.Y > _sv.ActualHeight - edge || _svi.Center.Y < edge) {
                    RaiseEvent(new RoutedEventArgs(ResetEvent, this));
                    _fe.Reset();
                }
            }

            if (_fe.DockingStyle == DockingStyles.Right && _svi.Center.X > _sv.ActualWidth - dockwidth) Dock();
            if (_fe.DockingStyle == DockingStyles.Left && _svi.Center.X < dockwidth) Dock();
            if (_fe.DockingStyle == DockingStyles.Up && _svi.Center.Y < dockwidth) Dock();

            if (_lastDragElement != null) _lastDragElement.ForceDrop(this, _fe);
        }
Exemple #9
0
 private void ScatterViewItem_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
 {
     GhostFrameManipulated();
 }
Exemple #10
0
        /// <summary>
        /// Event occured when a Note is released
        /// Magnetise the current note
        /// Add the note in the right stave
        /// Move the note to its final place
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void touchLeave(object sender, ContainerManipulationCompletedEventArgs e)
        {
            NothingAtThisPlace = true;
            if (noteVM.Picked) return;
            noteVM.Picked = true;

            ScatterViewItem Note = new ScatterViewItem();
            Note = e.Source as ScatterViewItem;
            NoteCenter = Note.ActualCenter;

            int width = (int)sessionVM.Grid.ActualWidth;
            int height = (int)sessionVM.Grid.ActualHeight;
            NoteCenter.X = NoteCenter.X * 1920.0 / width;
            NoteCenter.Y = NoteCenter.Y * 1080.0 / height;

            if (NoteCenter.X < 150.0) NoteCenter.X = 150.0;
            else if (NoteCenter.X >= 1830.0) NoteCenter.X = 1800.0;
            else NoteCenter.X = Math.Floor((NoteCenter.X + 30.0) / 60.0) * 60.0;

            //"Applatissement" de la portée (MAJ : Switch -> Tableau !)
            int offset = GlobalVariables.ManipulationGrid[(int)(NoteCenter.X / 60.0)];
            NoteCenter.Y += offset;

            int positionNote = (int)(NoteCenter.X - 120) / 60;
            Converter converter = new Converter();

            //Y dans le cadre portée ?
            //Si oui, animation
            //Sinon transform to bubble
            if (NoteCenter.Y < 576.0 && NoteCenter.Y > 165.0)
            {
                if (NoteCenter.Y < 370.0)
                {
                    if (NoteCenter.Y >= 344) NoteCenter.Y = 344;
                    NoteCenter.Y = Math.Floor((NoteCenter.Y + 6.0) / 20.0) * 20.0 + 4.0;
                    noteDroppedTopStave = true;
                }
                else
                {
                    if (NoteCenter.Y <= 395) NoteCenter.Y = 395;
                    NoteCenter.Y = Math.Floor((NoteCenter.Y + 15.0) / 20.0) * 20.0 - 5.0;
                    noteDroppedTopStave = false;
                }
                virtualCenter = NoteCenter;

                NoteCenter.Y -= offset;

                NoteCenter.X = NoteCenter.X * width / 1920.0;
                NoteCenter.Y = NoteCenter.Y * height / 1080.0;

                noteVM.SVItem.Center = NoteCenter;

                 #region STB
                Storyboard stb = new Storyboard();
                PointAnimation moveCenter = new PointAnimation();

                moveCenter.From = Note.ActualCenter;
                moveCenter.To = NoteCenter;
                moveCenter.Duration = new Duration(TimeSpan.FromSeconds(0.15));

                moveCenter.FillBehavior = FillBehavior.Stop;

                stb.Children.Add(moveCenter);

                Storyboard.SetTarget(moveCenter, Note);
                Storyboard.SetTargetProperty(moveCenter, new PropertyPath(ScatterViewItem.CenterProperty));
                #endregion

                moveCenter.Completed +=new EventHandler(moveCenter_Completed);

                Note.Center = NoteCenter;

                stb.Begin(SVItem);
            }
            else
            {
                noteVM.Picked = false;
                BackToBubbleFormat(true);
                DisplayPreviewGrid(false);
            }
        }
        /// <summary>
        ///     Changes item window's position and orientation when it's been manipulated.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SviItemWindow_ContainerManipulationCompleted(object sender,
                                                                  ContainerManipulationCompletedEventArgs e)
        {
            double newOrientation = 0;
            double orientation    = sviItemWindow.ActualOrientation;

            if (orientation > 90 && orientation < 270)
            {
                newOrientation = 180;
            }

            else if (orientation > 180)
            {
                newOrientation = 360;
            }

            var d  = new Duration(TimeSpan.FromMilliseconds(300));
            var da = new DoubleAnimation(orientation, newOrientation, d);
            var sb = new Storyboard();

            sb.Children.Add(da);

            Storyboard.SetTarget(da, sviItemWindow);
            Storyboard.SetTargetProperty(da, new PropertyPath("Orientation"));
            sb.FillBehavior = FillBehavior.Stop;

            sb.Begin();
            sviItemWindow.Orientation = newOrientation;

            double x = sviItemWindow.Center.X;
            double y = sviItemWindow.Center.Y;

            var point = new Point(sviItemWindow.Center.X, sviItemWindow.Center.Y);

            if (x < 260)
            {
                point.X = 260;
            }

            if (x > 1660)
            {
                point.X = 1660;
            }

            if (y < 160)
            {
                point.Y = 160;
            }

            if (y > 920)
            {
                point.Y = 920;
            }

            bool remove = false;

            if (y < 140 && x < 140)
            {
                point.Y = 300;
                point.X = 300;
                remove  = true;
            }
            if (remove)
            {
                ItemWindow_exitButtonPressed();
            }

            var da2 = new PointAnimation(sviItemWindow.ActualCenter, point, d);

            var sb2 = new Storyboard();

            sb2.Children.Add(da2);

            Storyboard.SetTarget(da2, sviItemWindow);
            Storyboard.SetTargetProperty(da2, new PropertyPath("Center"));
            sb2.FillBehavior = FillBehavior.Stop;

            sb2.Begin();
            sviItemWindow.Center = point;
        }
        private void SelectorContainer_ManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
        {
            Point center = (sender as ScatterViewItem).ActualCenter;

             if (canvasHelper.PointInsideContainer(center, TrashContainer))
             {
                 SelectorContainer.Visibility = Visibility.Hidden;
                 foreach (Stroke s in InkSelector.Strokes)
                 {
                         PageInkCanvas.Strokes.Remove(s);
                         if (lastStrokes != null )
                             lastStrokes.Remove(s);
                 }
             }

             else
             {
                 double x = SelectorContainer.ActualCenter.X - SelectorContainer.Width / 2;
                 double y = SelectorContainer.ActualCenter.Y - SelectorContainer.Height / 2;
                 if ((x != 0 && y != 0) && (ActiveSessionManager.ActivePenMode == PenMode.Selection))
                 {
                  //   startSelection = false;
                     Matrix inkTransform = new Matrix();
                     Rect b = InkSelector.Strokes.GetBounds();
                     double scaleX = SelectorContainer.Width / originalSelection.Width;
                     double scaleY = SelectorContainer.Height / originalSelection.Height;
                     inkTransform.Scale(scaleX, scaleY);
                     inkTransform.Translate(x, y);

                     // Transform strokes
                     InkSelector.Strokes.Transform(inkTransform, false);
                     foreach (Stroke s in InkSelector.Strokes)
                     {
                         s.DrawingAttributes.IsHighlighter = false;
                         PageInkCanvas.Strokes.Add(s);
                     }
                     SelectorContainer.Visibility = Visibility.Hidden;
                 }
             }
             DisableSelect();
             e.Handled = true;
        }
 private void ScatterViewItem_ScatterManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
 {
     if (canvasHelper.PointInsideContainer((sender as ScatterViewItem).ActualCenter, TrashContainer))
     {
         PrototypeElement selectedPrototypeElement = (sender as ScatterViewItem).Tag as PrototypeElement;
         if (selectedPrototypeElement != null)
         {
             ActiveSessionManager.RemovePrototypeElementFromPage(selectedPrototypeElement);
             Container.Items.Remove((sender as ScatterViewItem));
         }
     }
     else
     {
         PrototypeElement instance = ((ScatterViewItem)sender).Tag as PrototypeElement;
         events.SetupEventsPanel(instance);
     }
 }
        /// <summary>
        /// Event occured when a MelodyBubble is released
        /// Magnetise the current bubble
        /// Add the melody in the right stave
        /// Move the bubble to its final place
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void touchLeave(object sender, ContainerManipulationCompletedEventArgs e)
        {
            if (sessionVM.Session == null) return;

            if (melodyBubbleVM.Picked) return;
            melodyBubbleVM.Picked = true;

            ScatterViewItem bubble = new ScatterViewItem();
            bubble = e.Source as ScatterViewItem;
            bubbleCenter = bubble.ActualCenter;

            // int width = int.Parse(GetWidth.Text);
            // int height = int.Parse(GetHeight.Text);
            int width = (int)sessionVM.Grid.ActualWidth;
            int height = (int)sessionVM.Grid.ActualHeight;
            bubbleCenter.X = bubbleCenter.X * 1920 / width;
            bubbleCenter.Y = bubbleCenter.Y * 1080 / height;

            if (bubbleCenter.X < 150.0) bubbleCenter.X = 150.0;
            else if (bubbleCenter.X >= 1830) bubbleCenter.X = 1800;
            else bubbleCenter.X = Math.Floor((bubbleCenter.X + 30) / 60) * 60;

            //"Applatissement" de la portée (MAJ : Switch -> Tableau !)

            int offset = GlobalVariables.ManipulationGrid.ElementAtOrDefault((int)((long)bubbleCenter.X / 60));
            bubbleCenter.Y += offset;

            PositionMelody = new Point(bubbleCenter.X, bubbleCenter.Y);

            //Y dans le cadre portée ?
            //Si oui, animation
            //pas de else
            if (bubbleCenter.Y < 576 && bubbleCenter.Y > 165)
            {
                if (bubbleCenter.Y < 370.0)
                {
                    if (bubbleCenter.Y >= 344) bubbleCenter.Y = 344;
                    bubbleCenter.Y = Math.Floor((bubbleCenter.Y + 6.0) / 20.0) * 20.0 + 4.0;

                    sessionVM.Session.StaveTop.StopMelody();
                    sessionVM.Session.StaveTop.AddMelody(melodyBubbleVM.MelodyBubble, ((int)PositionMelody.X - 120) / 60);
                    melodyDroppedTopStave = true;

                }
                else
                {
                    if (bubbleCenter.Y <= 395) bubbleCenter.Y = 395;
                    bubbleCenter.Y = Math.Floor((bubbleCenter.Y + 15.0) / 20.0) * 20.0 - 5.0;

                    sessionVM.Session.StaveBottom.StopMelody();
                    sessionVM.Session.StaveBottom.AddMelody(melodyBubbleVM.MelodyBubble, ((int)PositionMelody.X - 120) / 60);
                    melodyDroppedTopStave = false;
                }

                bubbleCenter.Y -= offset;

                bubbleCenter.X = bubbleCenter.X * width / 1920;
                bubbleCenter.Y = bubbleCenter.Y * height / 1080;

                #region STB
                centerSTB = new Storyboard();
                PointAnimation moveCenter = new PointAnimation();

                moveCenter.From = bubble.ActualCenter;
                moveCenter.To = bubbleCenter;
                moveCenter.Duration = new Duration(TimeSpan.FromSeconds(0.15));
                bubble.Center = bubbleCenter;
                moveCenter.FillBehavior = FillBehavior.Stop;

                centerSTB.Children.Add(moveCenter);

                Storyboard.SetTarget(moveCenter, bubble);
                Storyboard.SetTargetProperty(moveCenter, new PropertyPath(ScatterViewItem.CenterProperty));
                #endregion

                bubble.Center = bubbleCenter;
                moveCenter.Completed += new EventHandler(moveCenter_Completed);

                centerSTB.Begin(SVItem);

            }
            else
            {
                melodyBubbleVM.Picked = false;
                canAnimate = true;
                Animate();
            }
        }
        /// <summary>
        /// Event occured when a Bubble is released
        /// Magnetise the current bubble
        /// Add the note in the right stave
        /// Move the bubble to its final place
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void touchLeave(object sender, ContainerManipulationCompletedEventArgs e)
        {
            ScatterViewItem bubble = new ScatterViewItem();
            bubble = e.Source as ScatterViewItem;
            bubbleCenter = bubble.ActualCenter;
            NothingAtThisPlace = true;

            int width = (int)sessionVM.Grid.ActualWidth;
            int height = (int)sessionVM.Grid.ActualHeight;
            bubbleCenter.X = bubbleCenter.X * 1920.0 / width;
            bubbleCenter.Y = bubbleCenter.Y * 1080.0 / height;

            if (bubbleCenter.X < 150.0) bubbleCenter.X = 150.0;
            else if (bubbleCenter.X >= 1830.0) bubbleCenter.X = 1800.0;
            else bubbleCenter.X = Math.Floor((bubbleCenter.X + 30.0) / 60.0) * 60.0;

            //"Applatissement" de la portée (MAJ : Switch -> Tableau !)
            int offset = GlobalVariables.ManipulationGrid.ElementAtOrDefault((int)(bubbleCenter.X / 60.0));
            bubbleCenter.Y += offset;

            Converter converter = new Converter();
            int positionNote = (int)(bubbleCenter.X - 120) / 60;

            //Y dans le cadre portée ?
            //Si oui, animation
            //pas de else
            if (bubbleCenter.Y < 576.0 && bubbleCenter.Y > 165.0)
            {
                if (bubbleCenter.Y < 370.0)
                {
                    if (bubbleCenter.Y >= 344.0) bubbleCenter.Y = 344.0;
                    bubbleCenter.Y = Math.Floor((bubbleCenter.Y + 6.0) / 20.0) * 20.0 + 4.0;
                    bubbleDroppedTopStave = true;
                }
                else
                {
                    if (bubbleCenter.Y <= 395) bubbleCenter.Y = 395;
                    bubbleCenter.Y = Math.Floor((bubbleCenter.Y + 15.0) / 20.0) * 20.0 - 5.0;
                    bubbleDroppedTopStave = false;
                }

                noteBubbleVM.NoteBubble.Note = new Note(converter.getOctave(bubbleCenter.Y), noteBubbleVM.NoteBubble.Note.Duration, converter.getPitch(bubbleCenter.Y), positionNote, noteBubbleVM.NoteBubble.Note.Sharp, noteBubbleVM.NoteBubble.Note.Flat);

                virtualCenter = bubbleCenter;

                bubbleCenter.Y -= offset;

                bubbleCenter.X = bubbleCenter.X * width / 1920.0;
                bubbleCenter.Y = bubbleCenter.Y * height / 1080.0;

                #region STB
                Storyboard stb = new Storyboard();
                PointAnimation moveCenter = new PointAnimation();

                moveCenter.From = bubble.ActualCenter;
                moveCenter.To = bubbleCenter;
                moveCenter.Duration = new Duration(TimeSpan.FromSeconds(0.15));

                moveCenter.FillBehavior = FillBehavior.Stop;

                stb.Children.Add(moveCenter);

                Storyboard.SetTarget(moveCenter, bubble);
                Storyboard.SetTargetProperty(moveCenter, new PropertyPath(ScatterViewItem.CenterProperty));
                #endregion

                bubble.Center = bubbleCenter;
                moveCenter.Completed += new EventHandler(moveCenter_Completed);

                stb.Begin(SVItem);
            }
            else
            {
                canAnimate = true;
                Animate();
                DisplayPreviewGrid(false);
            }
        }
        private void TouchLeaveBubble(object sender, ContainerManipulationCompletedEventArgs e)
        {
            int             durationNote = 0;
            ScatterViewItem bubble       = new ScatterViewItem();

            bubble = e.Source as ScatterViewItem;
            Point bubbleCenter = bubble.ActualCenter;

            foreach (Bubble i in bubbles)
            {
                if (bubble.Name == ("b" + i.name))
                {
                    durationNote = i.duration;
                }
            }

            int width  = int.Parse(GetWidth.Text);
            int height = int.Parse(GetHeight.Text);

            //int width = 1920;
            //int height = 1080;
            bubbleCenter.X = bubbleCenter.X * 1920 / width;
            bubbleCenter.Y = bubbleCenter.Y * 1080 / height;



            if (bubbleCenter.X <= 90)
            {
                bubbleCenter.X = 120;
            }
            else if (bubbleCenter.X >= 1830)
            {
                bubbleCenter.X = 1800;
            }
            else
            {
                bubbleCenter.X = Math.Floor((bubbleCenter.X + 30) / 60) * 60;
            }

            //"Applatissement" de la portée (MAJ : Switch -> Tableau !)
            int offset = offsettab[((long)bubbleCenter.X / 60)];

            bubbleCenter.Y += offset;


            //Y dans le cadre portée ?
            //Si oui, animation
            //pas de else
            if (bubbleCenter.Y < 630 && bubbleCenter.Y > 105)
            {
                if (bubbleCenter.Y < 370)
                {
                    if (bubbleCenter.Y >= 335)
                    {
                        bubbleCenter.Y = 335;
                    }
                    bubbleCenter.Y = Math.Floor((bubbleCenter.Y - 10) / 50) * 50 + 35;
                }
                else
                {
                    if (bubbleCenter.Y <= 405)
                    {
                        bubbleCenter.Y = 405;
                    }
                    bubbleCenter.Y = Math.Floor((bubbleCenter.Y + 20) / 50) * 50 + 5;
                }

                //Partie son*******************************
                //Le son se déclenche quand la bulle est lachée
                //En fonction de sa portée, on place la note dans le tableau qui convient

                String res     = "silence";
                int    centreY = (int)bubbleCenter.Y;
                res = dictionary[centreY];

                int centreX = (int)bubbleCenter.X;
                {
                    if (centreY >= 335)
                    {
                        stave1.fillArray(centreX, centreY, durationNote, res);
                    }

                    else
                    {
                        stave2.fillArray(centreX, centreY, durationNote, res);
                    }
                }

                //fin Partie son*****************************


                bubbleCenter.Y -= offset;

                bubbleCenter.X = bubbleCenter.X * width / 1920;
                bubbleCenter.Y = bubbleCenter.Y * height / 1080;

                Storyboard     stb        = new Storyboard();
                PointAnimation moveCenter = new PointAnimation();

                moveCenter.From         = bubble.ActualCenter;
                moveCenter.To           = bubbleCenter;
                moveCenter.Duration     = new Duration(TimeSpan.FromSeconds(0.15));
                bubble.Center           = bubbleCenter;
                moveCenter.FillBehavior = FillBehavior.Stop;

                stb.Children.Add(moveCenter);

                Storyboard.SetTarget(moveCenter, bubble);
                Storyboard.SetTargetProperty(moveCenter, new PropertyPath(ScatterViewItem.CenterProperty));

                stb.Begin(this);


                bubble.Visibility = Visibility.Collapsed;
                bubble.Visibility = Visibility.Visible;
            }
        }
 //Allows trashing of the sequence SVI when you swipe it far enough to the right or left
 private void onDSManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
 {
     sw1.swipeToDelete((MenuDataSheet)sender);
 }
 //When manipulation completed, check location for drop and transfer data to placeholder; then delete
 private void Sites_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
 {
     try
     {
         Sites s = sender as Sites;
         if (myClone != null)
         {
             Point pt = SurfaceWindow1.transformCoords(this, pd2.PD2_manual);
             if (pd2.PD2_buildTabs.SelectedIndex == 0) //If Manual is selected
             {
                 VisualTreeHelper.HitTest(pd2.PD2_manual, null, new HitTestResultCallback(sitesCallback), new PointHitTestParameters(pt));
             }
             ScatterView parent = (ScatterView)s.Parent;
             parent.Items.Remove(s);
         }
     }
     catch (Exception exc) { Console.WriteLine(exc); }
 }
 private void absBox_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
 {
     sw1.swipeToDelete((ScatterViewItem)sender);
 }
Exemple #20
0
 void seq_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
 {
     sw1.swipeToDelete((ScatterViewItem)sender);
 }
        //Determines user intent by checking location of drop against threshold and whether a clone exists (i.e. drag intent)
        private void Part_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
        {
            Part p = sender as Part;
            ScatterView parent = p.Parent as ScatterView;

            try
            {
                if (!(myClone == null))
                { //Clone has been created, indicating drag interaction
                    if (parent == null)
                    {
                        sw1.L0.L0_resultsSV.Items.Add(p);
                        p.PartInL0();
                        sw1.L0.L0_resultsSV.Items.Remove(p);
                    }
                    else
                    {
                        if (parent.Name == "L0_resultsSV")
                        { //Drops Part into L1
                            p.PartInL0();
                        }
                        else
                        { //Drops Part in L1Module
                            p.PartInL1();
                        }
                        parent.Items.Remove(p);
                    }
                }
                else
                {
                    if (parent == null) return; //In Primer Designer's StackPanel

                    Center = Original; //Reset center so non-drag interactions don't mess up positioning
                    if (parent.Name == "L1_prom" || parent.Name == "L1_rbs" || parent.Name == "L1_cds" || parent.Name == "L1_term")
                    { //If in an L1 palette
                        if (p.BorderBrush != Brushes.Gray)
                        {
                            //Restore original border
                            p.BorderBrush = Brushes.Gray;
                        }
                        else
                        {
                            p.BorderBrush = Brushes.Navy;
                        } //highlights border
                    }
                }
            }
            catch (Exception exc) { Console.WriteLine("Part Completed \n" + exc); }
        }
 //Determines if snap-to behavior is appropriate and where to snap to
 private void Level1_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
 {
     ScatterViewItem L1 = (ScatterViewItem)sender;
     //If its center is within the threshold of low.Y or high.Y or L2
     if (L1.Center.Y < high.Y + snapThreshold)
         L1.Center = new Point(low.X, high.Y);
     if (L1.Center.Y > low.Y - snapThreshold)
         L1.Center = new Point(low.X, low.Y);
     if (L1.Center.Y > (sw1.L2.Center.Y - snapThreshold_L2))
         L1.Center = new Point(low.X, sw1.L2.Center.Y - snapThreshold_L2);
 }
 /// <summary>
 /// Used for logging the new Height Width X and Y After Manipulation
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 void AfterManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
 {
     ScatterViewItem item = (ScatterViewItem)sender;
     Menu.Menu menu = FindTheMenu((Canvas)(item.Content));
     if (menu == null)
     {
         return;
     }
     if (e.ScaleFactor != 1)
     {
         Log.Resized(menu, item.Width, item.Height);
     }
     Log.Moved(item.Center, item.Orientation, menu);
 }
Exemple #24
0
 /// <summary>
 /// Handles the ScatterManipulationCompleted event of the ItemProxy control.
 /// When the user stops manipulating the item, begin an idle timeout.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="Microsoft.Surface.Presentation.Controls.ContainerManipulationCompletedEventArgs"/> instance containing the event data.</param>
 private void ScatterViewItem_ScatterManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
 {
     FinishManipulation(sender as ScatterViewItem);
 }
 //this is run when an item on the playground has been moved by the user
 void item_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
 {
     System.Diagnostics.Trace.WriteLine("hello container");
     var item = sender as ScatterViewItem;
     if (ItemIsOutsideView(item))
     {
         PlayGround.Items.Remove(item);
         LabelStatus.Content = " You discarded an item";
     }
     else
     {
         ResetItem(item);
     }
 }
 /// <summary>
 /// Handles docking for drawers
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void DrawerSVI_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
 {   
     if (_top)
     {//one of the top drawers
         if (DrawerSVI.Center.Y < 150)
         {
             DrawerSVI.Center = new Point(DRAWER_MIDDLE_X, DRAWER_MIDDLE_Y);
             DrawerSVI.Orientation = 180;
         }
     }
     else
     {//one of the bottom drawers
         if (DrawerSVI.Center.Y > 250)
         {
             DrawerSVI.Center = new Point(DRAWER_MIDDLE_X, DRAWER_BTMMIDDLE_Y);
             DrawerSVI.Orientation = 0;
         }
     }
 }
Exemple #27
0
 void svi_ContainerManipulationCompleted(object sender, ContainerManipulationCompletedEventArgs e)
 {
     var pos = svi.Center;
     pos.X += svi.ActualWidth/2;
     pos.Y += svi.ActualHeight/2;
     isMoving = false;
     var p = FindClosedGridPos(pos);
     if (p.X != Item.GridX || p.Y != Item.GridY)
     {
         Item.GridX = (int) p.X;
         Item.GridY = (int) p.Y;
     }
     UpdateGridPosition();
     showTimer = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(5) };
     showTimer.Tick += (s, f) =>
     {
         if (!isMoving) PART_Control.Visibility = Visibility.Collapsed;
         showTimer.Stop();
     }
     ;
     showTimer.Start();
     if (Item != null && Item.Dashboard != null) Item.Dashboard.TriggerChanged();
 }