Exemple #1
0
 public GestureItemProvider()
 {
     PatternMap             = GestureManager.Instance.LoadingTask.IsCompleted ? GestureItems.ToDictionary(gi => gi.Name, gi => gi.PointPattern) : new Dictionary <string, PointPattern[]>();
     GlobalPropertyChanged += (sender, propertyName) =>
     {
         PatternMap = GestureItems.ToDictionary(gi => gi.Name, gi => gi.PointPattern);
         OnPropertyChanged(propertyName);
     };
 }
        private static void Update()
        {
            if (_gestureItems == null)
            {
                _gestureItems = new ObservableCollection <GestureItem>();
            }
            else
            {
                _gestureItems.Clear();
            }

            // Get all available gestures from gesture manager
            var apps = ApplicationManager.Instance.Applications.Where(app => !(app is IgnoredApp)).ToList();

            var color = (Color)Application.Current.Resources["HighlightColor"];

            foreach (var g in GestureManager.Instance.Gestures)
            {
                var    gesture = (Gesture)g;
                string result  = string.Empty;
                foreach (IApplication application in apps)
                {
                    if (application.Actions.Any(a => a.GestureName == gesture.Name))
                    {
                        result += $" {application.Name},";
                    }
                }
                result = result.TrimEnd(',');

                GestureItem newItem = new GestureItem()
                {
                    GestureImage = GestureImage.CreateImage(gesture.PointPatterns, new Size(60, 60), color),
                    Features     = GestureManager.Instance.GetNewGestureId(gesture.PointPatterns),
                    PatternCount = gesture?.PointPatterns.Max(p => p.Points.Count) ?? 0,
                    Applications = result,
                    Gesture      = gesture
                };
                GestureItems.Add(newItem);
            }
            GestureMap = GestureItems.ToDictionary(gi => gi.Gesture.Name);
            GlobalPropertyChanged?.Invoke(typeof(GestureItemProvider), nameof(InstanceGestureMap));
        }
Exemple #3
0
        private static void Update()
        {
            if (_gestureItems == null)
            {
                _gestureItems = new ObservableCollection <GestureItem>();
            }
            else
            {
                _gestureItems.Clear();
            }

            // Get all available gestures from gesture manager
            IEnumerable <IGesture> results = GestureManager.Instance.Gestures.OrderBy(g => g.PointPatterns?.Max(p => p.Points.Count));
            var apps = ApplicationManager.Instance.Applications.Where(app => !(app is IgnoredApp)).ToList();

            foreach (var g in results)
            {
                var    gesture = (Gesture)g;
                string result  = string.Empty;
                foreach (IApplication application in apps)
                {
                    if (application.Actions.Any(a => a.GestureName == gesture.Name))
                    {
                        result += $" {application.Name},";
                    }
                }
                result = result.TrimEnd(',');

                GestureItem newItem = new GestureItem()
                {
                    Applications = result,
                    PointPattern = gesture.PointPatterns,
                    Name         = gesture.Name,
                };
                GestureItems.Add(newItem);
            }
            GlobalPropertyChanged?.Invoke(typeof(GestureItemProvider), nameof(PatternMap));
        }