コード例 #1
0
ファイル: Gate.cs プロジェクト: liuhui2010518/logiccircuit
 public override FrameworkElement CreateDisplay(CircuitGlyph symbol, CircuitGlyph mainSymbol)
 {
     Tracer.Assert(this == symbol.Circuit);
     if (this.GateType == LogicCircuit.GateType.Led)
     {
         string skin;
         if (this.InputCount == 1)
         {
             skin = SymbolShape.Led;
         }
         else
         {
             Tracer.Assert(this.InputCount == 8);
             skin = SymbolShape.SevenSegment;
         }
         return(symbol.CreateSimpleGlyph(skin, mainSymbol));
     }
     return(base.CreateDisplay(symbol, mainSymbol));
 }
コード例 #2
0
ファイル: Pin.cs プロジェクト: eugenelepekhin/LogicCircuit
 public override FrameworkElement CreateGlyph(CircuitGlyph symbol)
 {
     return(symbol.CreateSimpleGlyph(SymbolShape.Pin, symbol));
 }
コード例 #3
0
ファイル: Gate.cs プロジェクト: liuhui2010518/logiccircuit
        public override FrameworkElement CreateGlyph(CircuitGlyph symbol)
        {
            Tracer.Assert(this == symbol.Circuit);
            string skin;

            switch (this.GateType)
            {
            case GateType.Clock:
                skin = SymbolShape.Clock;
                break;

            case GateType.Odd:
            case GateType.Even:
            case GateType.Probe:
                Tracer.Fail();
                return(null);

            case GateType.Led:
                if (this.InputCount == 1)
                {
                    skin = SymbolShape.Led;
                }
                else
                {
                    Tracer.Assert(this.InputCount == 8);
                    skin = SymbolShape.SevenSegment;
                }
                break;

            default:
                if (Settings.User.GateShape == GateShape.Rectangular)
                {
                    return(symbol.CreateRectangularGlyph());
                }
                else
                {
                    switch (this.GateType)
                    {
                    case GateType.Not:
                        skin = SymbolShape.ShapedNot;
                        break;

                    case GateType.Or:
                        skin = SymbolShape.ShapedOr;
                        break;

                    case GateType.And:
                        skin = SymbolShape.ShapedAnd;
                        break;

                    case GateType.Xor:
                        skin = SymbolShape.ShapedXor;
                        break;

                    case GateType.TriState1:
                        skin = SymbolShape.ShapedTriState1;
                        break;

                    case GateType.TriState2:
                        skin = SymbolShape.ShapedTriState2;
                        break;

                    default:
                        Tracer.Fail();
                        return(null);
                    }
                    return(symbol.CreateShapedGlyph(skin));
                }
            }
            return(symbol.CreateSimpleGlyph(skin, symbol));
        }
コード例 #4
0
ファイル: Sound.cs プロジェクト: liuhui2010518/logiccircuit
 public override FrameworkElement CreateGlyph(CircuitGlyph symbol)
 {
     Tracer.Assert(this == symbol.Circuit);
     return(symbol.CreateSimpleGlyph(SymbolShape.Sound, symbol));
 }
コード例 #5
0
 public override FrameworkElement CreateDisplay(CircuitGlyph symbol, CircuitGlyph mainSymbol)
 {
     Tracer.Assert(this == symbol.Circuit);
     return(symbol.CreateSimpleGlyph(SymbolShape.GraphicsArray, mainSymbol));
 }