src/FingersDance.Control.TimeLine/UserControlTimeLine.xaml.cs
author sarias
Sun, 09 Aug 2009 18:29:41 +0200
changeset 34 9e222810f5b5
parent 10 e8bfe1102e03
child 69 a4c44555f205
permissions -rw-r--r--
User Control Player User Control TimeLine + Communication du player et TimeLine dans User Panel
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
     1
using System;
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
     2
using System.IO;
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
     3
using System.Net;
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
     4
using System.Windows;
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
     5
using System.Windows.Controls;
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
     6
using System.Windows.Data;
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
     7
using System.Windows.Media;
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
     8
using System.Windows.Media.Animation;
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
     9
using System.Windows.Navigation;
34
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    10
using System.Windows.Controls.Primitives;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    11
using Microsoft.Surface.Presentation.Controls;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    12
using System.Windows.Threading;
10
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
    13
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
    14
namespace FingersDance.Control.TimeLine
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
    15
{
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
    16
	public partial class UserControlTimeLine
34
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    17
    {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    18
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    19
        #region Variables
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    20
        private DispatcherTimer timer;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    21
        private bool isDragging = false;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    22
        private bool finishedDragging = false;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    23
        #endregion
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    24
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    25
        public event EventHandler DragStarted;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    26
        public event EventHandler DragCompleted;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    27
        public event EventHandler TimerTick;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    28
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    29
        #region Properties
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    30
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    31
        public SurfaceSlider Slider
10
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
    32
        {
34
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    33
            get
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    34
            {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    35
                return slider;
10
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
    36
            }
34
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    37
            set
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    38
            {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    39
                slider = value;
10
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
    40
            }
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
    41
        }
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
    42
        
34
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    43
        public bool IsDragging
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    44
        {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    45
            get
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    46
            {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    47
                return isDragging;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    48
            }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    49
            set
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    50
            {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    51
                isDragging = value;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    52
            }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    53
        }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    54
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    55
        public bool FinishedDragging
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    56
        {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    57
            get
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    58
            {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    59
                return finishedDragging;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    60
            }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    61
            set
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    62
            {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    63
                finishedDragging = value;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    64
            }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    65
        }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    66
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    67
        public DispatcherTimer Timer
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    68
        {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    69
            get
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    70
            {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    71
                return timer;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    72
            }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    73
            set
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    74
            {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    75
                timer = value;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    76
            }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    77
        }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    78
        #endregion
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    79
        
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    80
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    81
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    82
        
10
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
    83
		public UserControlTimeLine()
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
    84
		{
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
    85
			this.InitializeComponent();
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
    86
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
    87
			// Insert code required on object creation below this point.
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
    88
		}
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
    89
34
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    90
        public void initslider(double totalmilliseconds)
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    91
        {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    92
            slider.Maximum = totalmilliseconds;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    93
        }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    94
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    95
        #region Timer
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    96
        public void initTimer()
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    97
        {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    98
            timer = new DispatcherTimer();
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
    99
            timer.Interval = new TimeSpan(0, 0, 0, 0, 100);
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   100
            timer.Tick += new EventHandler(timer_Tick);
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   101
        }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   102
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   103
        public void timerStart()
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   104
        {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   105
            if (timer != null)
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   106
                timer.Start();
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   107
        }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   108
        void timer_Tick(object sender, EventArgs e)
10
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
   109
        {
34
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   110
            OnTimerTick();
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   111
            if (!isDragging)
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   112
            {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   113
                //slider.Value = media.Position.TotalMilliseconds;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   114
            }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   115
            if (finishedDragging)
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   116
            {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   117
                //int SliderValue = (int)slider.Value;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   118
                //TimeSpan ts = new TimeSpan(0, 0, 0, 0, SliderValue);
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   119
               // media.Position = ts;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   120
               // media.Play();
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   121
               // isDragging = false;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   122
                //finishedDragging = false;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   123
            }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   124
        }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   125
        protected virtual void OnTimerTick()
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   126
        {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   127
            if (TimerTick != null)
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   128
                TimerTick(this, new EventArgs());
10
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
   129
        }
34
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   130
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   131
        #endregion
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   132
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   133
        private void sliderPosition_DragStarted(
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   134
            object sender, DragStartedEventArgs e)
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   135
        {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   136
            isDragging = true;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   137
            OnDragStarted();
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   138
           // media.Pause();
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   139
        }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   140
        protected virtual void OnDragStarted()
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   141
        {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   142
            if (DragStarted != null)
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   143
                DragStarted(this, new EventArgs());
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   144
        }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   145
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   146
        private void sliderPosition_DragCompleted(
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   147
            object sender, DragCompletedEventArgs e)
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   148
        {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   149
            finishedDragging = true;
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   150
            OnDragCompleted();
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   151
        }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   152
        protected virtual void OnDragCompleted()
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   153
        {
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   154
            if (DragCompleted != null)
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   155
                DragCompleted(this, new EventArgs());
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   156
        }
9e222810f5b5 User Control Player
sarias
parents: 10
diff changeset
   157
10
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
   158
	}
e8bfe1102e03 Modif sur ControlPlayer pour les videos.
sarias
parents:
diff changeset
   159
}