예제 #1
0
 public void MouseUpSupport()
 {
     if (_supportObj != null)
     {
         //_supportObj.Pen.Width -= 5;
         _supportObj = null;
     }
 }
예제 #2
0
        public override void ExecuteCommand()
        {
            if (string.IsNullOrEmpty(Pivots))
            {
                // if they didn't specify any pivot keywords, just install the package they asked for.
                base.ExecuteCommand();
                return;
            }

            // otherwise, they have specified at least one pivot, and therefore we should just grab the pivot list
            // and install everything that we completely match in the pivot list.

            var pivotListPath = Path.Combine(OverlayPackageDirectory, @"build\native\pivot-list.txt");

            if (!File.Exists(pivotListPath))
            {
                throw new Exception(string.Format("Can't fine pivot list at '{0}'", pivotListPath));
            }

            var allPivots = File.ReadAllLines(pivotListPath);

            IEnumerable <string> keywords = Pivots.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);

            if (this.Arguments.Count > 0)
            {
                keywords = keywords.Union(this.Arguments);
            }
            keywords = keywords.Select(each => each.ToLower()).ToArray();


            IEnumerable <string> selectedPivots = keywords.All(each => each == "all") ? allPivots : (from p in allPivots let piv = p.ToLower() where keywords.All(piv.Contains) select p);

            // just looking?
            if (List)
            {
                this.Console.WriteLine("Overlay packages found:");
                foreach (var overlayPivot in selectedPivots)
                {
                    this.Console.WriteLine("   {0}", overlayPivot);
                }
                return;
            }

            // otherwise, just install each one.
            Pivots = null;

            foreach (var overlayPivot in selectedPivots)
            {
                try {
                    Arguments.Clear();
                    Arguments.Add(overlayPivot);

                    ExecuteCommand();
                } catch (Exception e) {
                    Console.WriteLine("{0}/{1}/{2}", e.GetType().Name, e.Message, e.StackTrace);
                }
            }
        }
예제 #3
0
        public void ScaleSelectFigureTest()
        {
            var    line   = Mock.Create <Line>(() => new Line());
            Figure figure = new Figure(new Pen(Color.AliceBlue), new GraphicsPath(), Color.Bisque, 1, false);
            Pivots pivots = new Pivots(new Pen(Color.AliceBlue), new GraphicsPath());

            line.ScaleSelectFigure(figure, pivots, new int(), new int());
            Mock.Assert(() => line.ScaleSelectFigure(figure, pivots, new int(), new int()), Occurs.AtLeastOnce());
        }
예제 #4
0
        public void AddListFigureTest()
        {
            Pen          examplePen = new Pen(Color.AliceBlue);
            GraphicsPath grPath     = new GraphicsPath();
            var          figure     = Mock.Create <Figure>(() => new Figure(examplePen, grPath, Color.Bisque, 1, false));
            Pivots       sp         = new Pivots(examplePen, grPath);

            figure.AddPivots(sp);
            Mock.Assert(() => figure.AddPivots(sp), Occurs.AtLeastOnce());
        }
예제 #5
0
 /// <summary>
 /// Метод, выполняющий отрисовку опорных точек.
 /// </summary>
 /// <para name = "figure">Переменная хранащая объект для которого нужно построить опорные точки</para>
 public void AddPivots(Figure figure, Color ColorLine)
 {
     for (int i = 0; i < figure.PointSelect.Length; i++)
     {
         _pivots = new Pivots(new Pen(ColorLine, 1), new GraphicsPath());
         _pivots.Path.AddEllipse(_rectangleLTRB.SelectFigure(figure.PointSelect[i], figure.Pen.Width));
         _pivots.IdFigure      = figure.IdFigure;
         _pivots.ControlPointF = i;
         figure.AddPivots(_pivots);
     }
 }
예제 #6
0
        private IEnumerable <IResult> LoadTwunches()
        {
            IEnumerable <Twunch> twunches = null;

            yield return(new Twunch.Fetcher(x => { twunches = x; }, false));

            foreach (var pivot in Pivots.OfType <ITwunchesViewModel>())
            {
                Execute.OnUIThread(() => pivot.SetAllTwunches(twunches));
            }
        }
예제 #7
0
        /// <summary>
        /// Checks or unchecks the specified pivot mode.
        /// </summary>
        public void SetPivot(T pivotMode, bool checked_)
        {
            var pivot = Pivots.First(o => o.Mode.Equals(pivotMode));

            if (checked_)
            {
                objectListView.CheckObject(pivot);
            }
            else
            {
                objectListView.UncheckObject(pivot);
            }
        }
예제 #8
0
 /// <summary>
 /// Метод, выполняющий отмену выделения.
 /// </summary>
 public void MouseUp()
 {
     foreach (Figure SelectObject in _selectedFigures)
     {
         if (SelectObject != null)
         {
             //SelectObject.Pen.Width -= 1;//Возвращаем ширину пера
             SelectObject.ClearListPivots();
             SelectObject.PointSelect  = null;
             SelectObject.SelectFigure = false;
             //SelectObject. = null;//Убираем ссылку на объект
             _supportObj = null;
         }
     }
     _selectedFigures.Clear();
 }
예제 #9
0
        public void SavePoint(MouseEventArgs e)
        {
            _oldPoint = e.Location;

            if (_selectedFigures.Count != 0)
            {
                foreach (Figure selectObject in _selectedFigures)
                {
                    foreach (Pivots supportObjecFigure in selectObject.ReturnListPivots())
                    {
                        _rectangleF = supportObjecFigure.Path.GetBounds();

                        if (_rectangleF.Contains(e.Location))
                        {
                            _supportObj = supportObjecFigure;
                        }
                    }
                }
            }
        }
예제 #10
0
        public BuildScript(string filename) {
            try {
                Filename = filename.GetFullPath();
                _project = new ProjectPlus(this, Filename + ".msbuild");
                _project.Xml.AddImport(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "etc", "MSBuild.ExtensionPack.tasks"));

                _sheet = new RootPropertySheet(_project);
                _sheet.ParseFile(Filename);

                _pivots = new Pivots(_sheet.View.configurations);

                _sheet.AddChildRoutes(_project.MemberRoutes);
                // _sheet.AddChildRoutesForType(typeof (ProjectTargetElement), _project.TargetRoutes);

                _sheet.CurrentView.AddMacroHandler((name, context) => _macros.ContainsKey(name.ToLower()) ? _macros[name.ToLower()] : null);
                _sheet.CurrentView.AddMacroHandler((name, context) => Environment.GetEnvironmentVariable(name));
                // convert #product-info into a dictionary.
                productInformation = _sheet.Metadata.Value.Keys.Where(each => each.StartsWith("product-info")).ToXDictionary(each => each.Substring(12), each => _sheet.Metadata.Value[each]);
            } catch(Exception e) { 
                // e.PrintDump();
                Dispose();
            }
        }
예제 #11
0
        public BuildScript(string filename)
        {
            try {
                Filename = filename.GetFullPath();
                _project = new ProjectPlus(this, Filename + ".msbuild");
                _project.Xml.AddImport(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "etc", "MSBuild.ExtensionPack.tasks"));

                _sheet = new RootPropertySheet(_project);
                _sheet.ParseFile(Filename);

                _pivots = new Pivots(_sheet.View.configurations);

                _sheet.AddChildRoutes(_project.MemberRoutes);
                // _sheet.AddChildRoutesForType(typeof (ProjectTargetElement), _project.TargetRoutes);

                _sheet.CurrentView.AddMacroHandler((name, context) => _macros.ContainsKey(name.ToLower()) ? _macros[name.ToLower()] : null);
                _sheet.CurrentView.AddMacroHandler((name, context) => Environment.GetEnvironmentVariable(name));
                // convert #product-info into a dictionary.
                productInformation = _sheet.Metadata.Value.Keys.Where(each => each.StartsWith("product-info")).ToXDictionary(each => each.Substring(12), each => _sheet.Metadata.Value[each]);
            } catch {
                Dispose();
            }
        }
예제 #12
0
        /// <summary>
        /// Метод, отвечающий за перемещение и масштабирование фигур.
        /// </summary>
        /// <para name = "figureSelect">Переменная хранащая объект для которого нужно выполнять действия</para>
        /// <para name = "pivotsFigure">Переменная хранащая опорные точки выбранного объекта</para>
        /// <para name = "DeltaX">Переменная хранащая разницу по координате X</para>
        /// <para name = "DeltaY">Переменная хранащая разницу по координате Y</para>
        public void ScaleSelectFigure(Figure figureSelect, Pivots pivotsFigure, int DeltaX, int DeltaY)
        {
            if ((figureSelect.PointSelect[0].X - figureSelect.PointSelect[1].X != 0) && (figureSelect.PointSelect[0].Y - figureSelect.PointSelect[1].Y != 0))
            {
                figureSelect.PointSelect = figureSelect.Path.PathPoints;
            }
            if (figureSelect.IdFigure == pivotsFigure.IdFigure)
            {
                figureSelect.PointSelect[pivotsFigure.ControlPointF].X += DeltaX;
                figureSelect.PointSelect[pivotsFigure.ControlPointF].Y += DeltaY;

                PointF[] PointF = figureSelect.PointSelect.ToArray();
                figureSelect.Path.Reset();
                figureSelect.Path.AddLines(PointF);

                if (figureSelect.CurrentFigure == 4)
                {
                    figureSelect.Path.CloseFigure();
                }
            }
            if (figureSelect.CurrentFigure != 1)
            {
                for (int i = 0; i < figureSelect.PointSelect.Length; i++)
                {
                    figureSelect.EditPivots(i, _rectangleForPivots.SelectFigure(figureSelect.PointSelect[i], figureSelect.Pen.Width));
                }
            }
            else
            {
                int k = 0;
                for (int i = 0; i < figureSelect.PointSelect.Length; i += 3)
                {
                    figureSelect.EditPivots(k, _rectangleForPivots.SelectFigure(figureSelect.PointSelect[i], figureSelect.Pen.Width));
                    k++;
                }
            }
        }
예제 #13
0
 public PivotMessage(Pivots pivot, bool visible, bool?show = null)
 {
     Pivot   = pivot;
     Visible = visible;
     Show    = show;
 }
예제 #14
0
        /// <summary>
        /// Метод, отвечающий за перемещение и масштабирование фигур.
        /// </summary>
        /// <para name = "figureSelect">Переменная хранащая объект для которого нужно выполнять действия</para>
        /// <para name = "pivots">Переменная хранащая опорные точки выбранного объекта</para>
        /// <para name = "DeltaX">Переменная хранащая разницу по координате X</para>
        /// <para name = "DeltaY">Переменная хранащая разницу по координате Y</para>
        public void ScaleSelectFigure(Figure figureSelect, Pivots pivots, int DeltaX, int DeltaY)
        {
            figureSelect.PointSelect = figureSelect.Path.PathPoints;

            if (figureSelect.IdFigure == pivots.IdFigure)
            {
                switch (pivots.ControlPointF)
                {
                case 12:

                    if (figureSelect.PointSelect[0].X + DeltaX > figureSelect.PointSelect[6].X)
                    {
                        figureSelect.PointSelect[0].X += DeltaX;
                    }

                    figureSelect.PointSelect[0].Y += DeltaY;

                    _pointStart.X = figureSelect.PointSelect[6].X;
                    _pointStart.Y = figureSelect.PointSelect[9].Y;

                    _pointEnd.X = figureSelect.PointSelect[0].X;
                    _pointEnd.Y = figureSelect.PointSelect[3].Y;

                    figureSelect.Path.Reset();

                    figureSelect.Path.AddEllipse(_rectangleLTRBd.ShowRectangle(_pointEnd, _pointStart));

                    break;

                case 3:

                    if (figureSelect.PointSelect[3].Y + DeltaY > figureSelect.PointSelect[9].Y)
                    {
                        figureSelect.PointSelect[3].Y += DeltaY;
                    }

                    figureSelect.PointSelect[3].X += DeltaX;

                    _pointStart.X = figureSelect.PointSelect[6].X;
                    _pointStart.Y = figureSelect.PointSelect[9].Y;

                    _pointEnd.X = figureSelect.PointSelect[0].X;
                    _pointEnd.Y = figureSelect.PointSelect[3].Y;

                    figureSelect.Path.Reset();

                    figureSelect.Path.AddEllipse(_rectangleLTRBd.ShowRectangle(_pointStart, _pointEnd));

                    break;

                case 6:

                    if (figureSelect.PointSelect[6].X + DeltaX < figureSelect.PointSelect[0].X)
                    {
                        figureSelect.PointSelect[6].X += DeltaX;
                    }

                    figureSelect.PointSelect[6].Y += DeltaY;

                    _pointStart.X = figureSelect.PointSelect[6].X;
                    _pointStart.Y = figureSelect.PointSelect[9].Y;

                    _pointEnd.X = figureSelect.PointSelect[0].X;
                    _pointEnd.Y = figureSelect.PointSelect[3].Y;

                    figureSelect.Path.Reset();

                    figureSelect.Path.AddEllipse(_rectangleLTRBd.ShowRectangle(_pointStart, _pointEnd));

                    break;

                case 9:
                    if (figureSelect.PointSelect[9].Y + DeltaY < figureSelect.PointSelect[3].Y)
                    {
                        figureSelect.PointSelect[9].Y += DeltaY;
                    }

                    figureSelect.PointSelect[9].X += DeltaX;

                    _pointStart.X = figureSelect.PointSelect[6].X;
                    _pointStart.Y = figureSelect.PointSelect[9].Y;

                    _pointEnd.X = figureSelect.PointSelect[0].X;
                    _pointEnd.Y = figureSelect.PointSelect[3].Y;

                    figureSelect.Path.Reset();

                    figureSelect.Path.AddEllipse(_rectangleLTRBd.ShowRectangle(_pointStart, _pointEnd));
                    break;
                }
            }
            if (figureSelect.CurrentFigure != 1)
            {
                for (int i = 0; i < figureSelect.PointSelect.Length; i++)
                {
                    figureSelect.EditPivots(i, _rectangleForPivots.SelectFigure(figureSelect.PointSelect[i], figureSelect.Pen.Width));
                }
            }
            else
            {
                int k = 0;
                for (int i = 0; i < figureSelect.PointSelect.Length; i += 3)
                {
                    figureSelect.EditPivots(k, _rectangleForPivots.SelectFigure(figureSelect.PointSelect[i], figureSelect.Pen.Width));
                    k++;
                }
            }
        }
예제 #15
0
        /// <summary>
        /// Метод, отвечающий за перемещение и масштабирование фигур.
        /// </summary>
        /// <para name = "_figure">Переменная хранащая объект для которого нужно выполнять действия</para>
        /// <para name = "pivots">Переменная хранащая опорные точки выбранного объекта</para>
        /// <para name = "DeltaX">Переменная хранащая разницу по координате X</para>
        /// <para name = "DeltaY">Переменная хранащая разницу по координате Y</para>
        public void ScaleSelectFigure(Figure Selectedfigure, Pivots pivots, int DeltaX, int DeltaY)
        {
            if ((Selectedfigure.PointSelect[0].X - Selectedfigure.PointSelect[2].X != 0) && (Selectedfigure.PointSelect[0].Y - Selectedfigure.PointSelect[2].Y != 0))
            {
                Selectedfigure.PointSelect = Selectedfigure.Path.PathPoints;
            }

            if (Selectedfigure.IdFigure == pivots.IdFigure)
            {
                switch (pivots.ControlPointF)
                {
                case 0:
                    if (Selectedfigure.PointSelect[0].X + DeltaX < Selectedfigure.PointSelect[1].X)
                    {
                        Selectedfigure.PointSelect[0].X += DeltaX;
                    }

                    if (Selectedfigure.PointSelect[0].Y + DeltaY < Selectedfigure.PointSelect[3].Y)
                    {
                        Selectedfigure.PointSelect[0].Y += DeltaY;
                    }
                    Selectedfigure.Path.Reset();
                    Selectedfigure.Path.AddRectangle(_rectangleLTRBd.ShowRectangle(Selectedfigure.PointSelect[0], Selectedfigure.PointSelect[2]));
                    break;

                case 1:
                    if (Selectedfigure.PointSelect[2].X + DeltaX > Selectedfigure.PointSelect[0].X)
                    {
                        Selectedfigure.PointSelect[2].X += DeltaX;
                    }
                    if (Selectedfigure.PointSelect[0].Y + DeltaY < Selectedfigure.PointSelect[2].Y)
                    {
                        Selectedfigure.PointSelect[0].Y += DeltaY;
                    }
                    Selectedfigure.Path.Reset();
                    Selectedfigure.Path.AddRectangle(_rectangleLTRBd.ShowRectangle(Selectedfigure.PointSelect[0], Selectedfigure.PointSelect[2]));
                    break;

                case 2:
                    if (Selectedfigure.PointSelect[2].X + DeltaX > Selectedfigure.PointSelect[3].X)
                    {
                        Selectedfigure.PointSelect[2].X += DeltaX;
                    }
                    if (Selectedfigure.PointSelect[2].Y + DeltaY > Selectedfigure.PointSelect[1].Y)
                    {
                        Selectedfigure.PointSelect[2].Y += DeltaY;
                    }
                    Selectedfigure.Path.Reset();
                    Selectedfigure.Path.AddRectangle(_rectangleLTRBd.ShowRectangle(Selectedfigure.PointSelect[0], Selectedfigure.PointSelect[2]));
                    break;

                case 3:
                    if (Selectedfigure.PointSelect[0].X + DeltaX < Selectedfigure.PointSelect[2].X)
                    {
                        Selectedfigure.PointSelect[0].X += DeltaX;
                    }
                    if (Selectedfigure.PointSelect[2].Y + DeltaY > Selectedfigure.PointSelect[0].Y)
                    {
                        Selectedfigure.PointSelect[2].Y += DeltaY;
                    }
                    Selectedfigure.Path.Reset();
                    Selectedfigure.Path.AddRectangle(_rectangleLTRBd.ShowRectangle(Selectedfigure.PointSelect[0], Selectedfigure.PointSelect[2]));
                    break;
                }
            }
            if (Selectedfigure.CurrentFigure != 1)
            {
                for (int i = 0; i < Selectedfigure.PointSelect.Length; i++)
                {
                    Selectedfigure.EditPivots(i, _rectangleForPivots.SelectFigure(Selectedfigure.PointSelect[i], Selectedfigure.Pen.Width));
                }
            }
            else
            {
                int k = 0;
                for (int i = 0; i < Selectedfigure.PointSelect.Length; i += 3)
                {
                    Selectedfigure.EditPivots(k, _rectangleForPivots.SelectFigure(Selectedfigure.PointSelect[i], Selectedfigure.Pen.Width));
                    k++;
                }
            }
        }
예제 #16
0
        /// <summary>
        /// Метод, отвечающий за перемещение и масштабирование фигур.
        /// </summary>
        /// <para name = "figureSelect">Переменная хранащая объект для которого нужно выполнять действия</para>
        /// <para name = "pivots">Переменная хранащая опорные точки выбранного объекта</para>
        /// <para name = "DeltaX">Переменная хранащая разницу по координате X</para>
        /// <para name = "DeltaY">Переменная хранащая разницу по координате Y</para>
        public void ScaleSelectFigure(Figure figureSelect, Pivots pivots, int DeltaX, int DeltaY)
        {
            if ((figureSelect.PointSelect[0].X - figureSelect.PointSelect[1].X != 0) && (figureSelect.PointSelect[0].Y - figureSelect.PointSelect[1].Y != 0))
            {
                figureSelect.PointSelect = figureSelect.Path.PathPoints;
            }
            if (figureSelect.IdFigure == pivots.IdFigure)
            {
                switch (pivots.ControlPointF)
                {
                case 0:

                    figureSelect.PointSelect[0].X += DeltaX;
                    figureSelect.PointSelect[0].Y += DeltaY;
                    figureSelect.Path.Reset();
                    figureSelect.Path.AddLine(figureSelect.PointSelect[0], figureSelect.PointSelect[1]);

                    break;

                case 1:

                    figureSelect.PointSelect[1].X += DeltaX;
                    figureSelect.PointSelect[1].Y += DeltaY;
                    figureSelect.Path.Reset();
                    figureSelect.Path.AddLine(figureSelect.PointSelect[0], figureSelect.PointSelect[1]);

                    break;
                }
            }
            if (figureSelect.CurrentFigure != 1)
            {
                for (int i = 0; i < figureSelect.PointSelect.Length; i++)
                {
                    figureSelect.EditPivots(i, _rectangleForPivots.SelectFigure(figureSelect.PointSelect[i], figureSelect.Pen.Width));
                }
            }
            else
            {
                int k = 0;
                for (int i = 0; i < figureSelect.PointSelect.Length; i += 3)
                {
                    figureSelect.EditPivots(k, _rectangleForPivots.SelectFigure(figureSelect.PointSelect[i], figureSelect.Pen.Width));
                    k++;
                }
            }
            if (figureSelect.CurrentFigure != 1)
            {
                for (int i = 0; i < figureSelect.PointSelect.Length; i++)
                {
                    figureSelect.EditPivots(i, _rectangleForPivots.SelectFigure(figureSelect.PointSelect[i], figureSelect.Pen.Width));
                }
            }
            else
            {
                int k = 0;
                for (int i = 0; i < figureSelect.PointSelect.Length; i += 3)
                {
                    figureSelect.EditPivots(k, _rectangleForPivots.SelectFigure(figureSelect.PointSelect[i], figureSelect.Pen.Width));
                    k++;
                }
            }
        }
예제 #17
0
        public PackageScript(string filename)
        {
            Event<Verbose>.Raise("PackageScript", "Constructor");
            _sheet = new RootPropertySheet(this);

            // get the full path to the .autopkgFile
            FullPath = filename.GetFullPath();

            // parse the script
            _sheet.ParseFile(filename);

            _sheet.ImportText(_requiredTemplate, "required");

            // temp hack to work around static & ltcg getting marked as used when they are just in the template.
            var scriptText = File.ReadAllText(filename);
            if (scriptText.IndexOf("static", StringComparison.InvariantCultureIgnoreCase) > -1) {
                _sheet.ImportText(_requiredTemplateStatic, "required_static");
            }

            // end hack
            if (scriptText.IndexOf("ltcg", StringComparison.InvariantCultureIgnoreCase) > -1) {
                _sheet.ImportText(_requiredTemplateLTCG, "required_ltcg");
            }
            // ensure we have at least the package ID
            var packageName = _sheet.View.nuget.nuspec.id;
            if (string.IsNullOrEmpty(packageName)) {
                throw new ClrPlusException("the Field nuget.nuspec.id can not be null or empty. You must specify an id for a package.");
            }

            // set the package name macro
            _sheet.AddMacro("pkgname", packageName);
            _sheet.CurrentView.AddMacroHandler( (name, context) => _macros.ContainsKey(name.ToLower()) ? _macros[name.ToLower()] : null);
            _sheet.CurrentView.AddMacroHandler((name, context) => System.Environment.GetEnvironmentVariable(name));

            Pivots = new Pivots(_sheet.CurrentView.GetProperty("configurations"));
        }