Example #1
0
        protected override void OnMouseUp(int x, int y)
        {
            base.OnMouseUp(x, y);
            if (prevPixTools.Count > 0)
            {
                int prevPixToolCount = prevPixTools.Count;
                for (int n = prevPixToolCount - 1; n >= 0; --n)
                {
                    PixelToolController prevPixTool = prevPixTools[n];
                    //do path clip***
                    List <VertexStore> resultList = PixelFarm.Agg.VertexSource.VxsClipper.CombinePaths(
                        new VertexStoreSnap(prevPixTool.GetVxs()),
                        new VertexStoreSnap(this.GetVxs()),
                        PixelFarm.Agg.VertexSource.VxsClipperType.Difference,
                        true);
                    int count;
                    switch (count = resultList.Count)
                    {
                    case 1:
                    {           //replace the last one with newBrushPath
                        prevPixTool.SetVxs(resultList[0]);
                    }
                    break;

                    case 0:
                        break;

                    default:
                    {
                        //we will replace all with new set***
                        var brushPath = prevPixTool as MyDrawingBrushController;
                        if (brushPath != null)
                        {
                            System.Drawing.Color fillColor = brushPath.PathFillColor;
                            prevPixTools.RemoveAt(n);
                            for (int i = 0; i < count; ++i)
                            {
                                var subBrush = new MyDrawingBrushController();
                                subBrush.SetVxs(resultList[i]);
                                subBrush.PathFillColor = fillColor;
                                prevPixTools.Insert(n, subBrush);
                            }
                        }
                    }
                    break;
                    }
                }
            }
        }
Example #2
0
        protected override void OnMouseDown(int x, int y)
        {
            _latest_mouseX = x;
            _latest_mouseY = y;
            if (_lastestSelectedController != null)
            {
                if (_lastestSelectedController is MyDrawingBrushController)
                {
                    ((MyDrawingBrushController)_lastestSelectedController).PathFillColor = _latestSelectControllerFillColor;
                }
            }

            int j = this.prevPixTools.Count;
            PixelToolController selectedShape = null;

            for (int i = this.prevPixTools.Count - 1; i >= 0; --i)
            {
                PixelToolController p = prevPixTools[i];
                if (p.HitTest(x, y))
                {
                    //found
                    //then check fill color
                    _lastestSelectedController = p;
                    if (_lastestSelectedController is MyDrawingBrushController)
                    {
                        var b = (MyDrawingBrushController)_lastestSelectedController;
                        _latestSelectControllerFillColor = b.PathFillColor;
                        b.PathFillColor = System.Drawing.Color.Blue;
                    }

                    selectedShape = p;
                    break;
                }
            }

            base.OnMouseDown(x, y);
        }