コード例 #1
0
 private void Reset()
 {
     codeOrigin           = null;
     achievementUiElement = null;
     adornmentVisible     = false;
     layer.RemoveAllAdornments();
     descriptionLayer.RemoveAllAdornments();
 }
コード例 #2
0
        protected virtual void UnlockWith(AstNode location)
        {
            CodeOrigin = new AchievementCodeOrigin();

            CodeOrigin.From.Line   = location.StartLocation.Line;
            CodeOrigin.From.Column = location.StartLocation.Column;

            CodeOrigin.To.Line   = location.EndLocation.Line;
            CodeOrigin.To.Column = location.EndLocation.Column;

            IsAchievementUnlocked = true;
        }
コード例 #3
0
        public AchievementAdornments(IWpfTextView view)
        {
            this.view             = view;
            this.layer            = view.GetAdornmentLayer("AchievementAdornments");
            this.descriptionLayer = view.GetAdornmentLayer("AchievementAdornmentsDescription");

            view.LayoutChanged += OnLayoutChanged;

            Brush brush = new SolidColorBrush(Color.FromArgb(0x20, 0x00, 0x00, 0xff));

            brush.Freeze();

            Brush penBrush = new SolidColorBrush(Colors.Red);

            penBrush.Freeze();

            Pen pen = new Pen(penBrush, 0.5);

            pen.Freeze();

            this.brush = brush;
            this.pen   = pen;

            AchievementUIContext.AchievementClicked += (sender, e) =>
            {
                Reset();

                var filePath = GetFilePath(view);
                if (e.AchievementDescriptor.CodeOrigin.FileName != filePath)
                {
                    return;
                }

                codeOrigin           = e.AchievementDescriptor.CodeOrigin;
                achievementUiElement = (UIElement)e.UIElement;

                CreateAdornment();
            };
        }