Esempio n. 1
0
 public void Paint(IPaintbrush pb)
 {
     if (current != null)
     {
         pb.Color = Constants.GetColorFor(Value.One);
         pb.StrokeCircle(current.Value.X, current.Value.Y, Constants.WIRING_READY_RADIUS);
     }
 }
Esempio n. 2
0
 public void Paint(IPaintbrush pb)
 {
     if (loc0 != loc1)
     {
         pb.Color       = Constants.GetColorFor(Value.One);
         pb.StrokeWidth = Constants.WIRE_WIDTH;
         foreach (WireSegment seg in GetSegments(loc0, loc1, isModified))
         {
             pb.StrokeLine(seg.End0.X, seg.End0.Y, seg.End1.X, seg.End1.Y);
         }
     }
 }
 public void PaintPorts()
 {
     using (IPaintbrush pb = this.Create()) {
         int i = -1;
         foreach (ConnectionPoint p in Instance.Component.Connections)
         {
             i++;
             this.SetColorFor(InstanceState.Get(i));
             this.FillCircle(p.Dx, p.Dy, 8);
         }
     }
 }
Esempio n. 4
0
        public void Paint(IPaintbrush pb)
        {
            ComponentInstance cur = poking;

            if (cur != null)
            {
                Location loc = pokingLocation;
                pb.TranslateCoordinates(loc.X, loc.Y);
                Pokeable dest = cur.Component as Pokeable;
                dest.PaintPokeProgress(new ComponentPainter(pb, new DummyInstanceState(cur)));
            }
        }
Esempio n. 5
0
        public void Paint(IPaintbrush pb)
        {
            Location          cur = current;
            IComponentPainter ip  = new ComponentPainter(pb, new DummyInstanceState(masterInstance));

            pb.TranslateCoordinates(cur.X, cur.Y);
            if (currentValid)
            {
                pb.Color = Constants.COLOR_GHOST;
            }
            else
            {
                pb.Color = Constants.COLOR_DEAD;
            }
            master.Paint(ip);
        }
Esempio n. 6
0
        public void Paint(IPaintbrush pb)
        {
            pb.TranslateCoordinates(Canvas.RawWidth / 2, Canvas.RawHeight / 2);
            pb.ScaleCoordinates(Zoom, Zoom);
            pb.TranslateCoordinates(-CenterX, -CenterY);

            using (IPaintbrush pbSub = pb.Create()) {
                PaintModel(pbSub);
            }
            IGesture gest = gesture;

            if (gest != null)
            {
                using (IPaintbrush pbSub = pb.Create()) {
                    gest.Paint(pbSub);
                }
            }
        }
Esempio n. 7
0
        public void Paint(IPaintbrush pb)
        {
            ComponentInstance cur = moving;

            if (cur != null)
            {
                if (curValid)
                {
                    pb.Color = Constants.COLOR_GHOST;
                }
                else
                {
                    pb.Color = Constants.COLOR_DEAD;
                }
                Location loc = movingLocation;
                pb.TranslateCoordinates(loc.X + curDx, loc.Y + curDy);
                cur.Component.Paint(new ComponentPainter(pb, new DummyInstanceState(cur)));
            }
        }
        protected override void PaintModel(IPaintbrush pb)
        {
            repainter.NotifyRepainted();
            LayoutModel      layoutModel = this.Layout;
            LayoutSimulation layoutSim   = this.LayoutSim;

            if (layoutModel == null)
            {
                return;
            }
            if (layoutSim.LayoutModel != layoutModel)
            {
                Console.Error.WriteLine("layoutSim and layoutModel do not match");
                return;
            }
            ComponentPainter  ip       = new ComponentPainter(pb, null);
            bool              noHidden = hidden.Count == 0;
            Transaction       xn       = new Transaction();
            ISimulationAccess sim      = xn.RequestReadAccess(layoutSim.SimulationModel);
            ILayoutAccess     layout   = xn.RequestReadAccess(layoutModel);

            using (xn.Start()) {
                using (IPaintbrush pbSub = pb.Create()) {
                    pbSub.StrokeWidth = Constants.WIRE_WIDTH;
                    foreach (WireSegment wire in layout.Wires)
                    {
                        Value val0 = layoutSim.GetValueAt(layout, sim, wire.End0);
                        pbSub.Color = Constants.GetColorFor(val0);
                        pbSub.StrokeLine(wire.End0.X, wire.End0.Y, wire.End1.X, wire.End1.Y);
                    }
                }

                InstanceState state = new InstanceState(sim, null);
                ip.InstanceState = state;
                foreach (Component component in layout.Components)
                {
                    if (noHidden || !hidden.Contains(component))
                    {
                        Location loc = component.GetLocation(layout);
                        using (IPaintbrush pbSub = pb.Create()) {
                            pbSub.TranslateCoordinates(loc.X, loc.Y);
                            ip.Paintbrush  = pbSub;
                            state.Instance = layoutSim.GetInstance(layout, component);
                            component.Paint(ip);
                        }
                    }
                }

                using (IPaintbrush pbSub = pb.Create()) {
                    foreach (Location loc in WiringPoints.SolderPoints)
                    {
                        Value val = layoutSim.GetValueAt(layout, sim, loc);
                        pbSub.Color = Constants.GetColorFor(val);
                        if (noHidden || WiringPoints.IsSolderPoint(loc, hidden))
                        {
                            pbSub.FillCircle(loc.X, loc.Y, Constants.SOLDER_RADIUS);
                        }
                    }
                }
            }
        }
 public ComponentPainter(IPaintbrush master, IInstanceState state)
     : base(master)
 {
     this.InstanceState = state;
 }
Esempio n. 10
0
 public PaintbrushAdapter(IPaintbrush baseBrush)
 {
     this.BaseBrush = baseBrush;
 }
Esempio n. 11
0
 public void Paint(IPaintbrush pb)
 {
     // do nothing
 }
Esempio n. 12
0
 protected abstract void PaintModel(IPaintbrush pb);