Example #1
0
        public Studio()
        {
            InitializeComponent();

            _steppingStatement = null;
        }
        public void RemoveStatement( Statement statement )
        {
            Debug.Assert( statement != null );
            if( statement == null )
                throw new ArgumentNullException( "statement" );

            if( statement.Method != _currentMethod )
                return;

            if( _rowMapping.ContainsKey( statement.Address ) == false )
                return;
            Row row = _rowMapping[ statement.Address ];
            switch( statement.Type )
            {
                case StatementType.Current:
                    if( row.Images.Contains( _statementIcon ) == true )
                        row.Images.Remove( _statementIcon );
                    break;
                case StatementType.Call:
                    if( row.Images.Contains( _statementCallIcon ) == true )
                        row.Images.Remove( _statementCallIcon );
                    break;
                case StatementType.Dead:
                    if( row.Images.Contains( _statementDeadIcon ) == true )
                        row.Images.Remove( _statementDeadIcon );
                    break;
            }

            _statements.Remove( statement.Address );
        }
        public void SetStatement( Statement statement )
        {
            if( statement.Method != _currentMethod )
                return;

            Debug.Assert( _rowMapping.ContainsKey( statement.Address ) == true );
            if( _rowMapping.ContainsKey( statement.Address ) == false )
                return;
            Row row = _rowMapping[ statement.Address ];

            int icon;
            switch( statement.Type )
            {
                default:
                case StatementType.Current:
                    icon = _statementIcon;
                    break;
                case StatementType.Call:
                    icon = _statementCallIcon;
                    break;
                case StatementType.Dead:
                    icon = _statementDeadIcon;
                    break;
            }
            row.Images.Add( icon );
        }
        public Statement AddStatement( StatementType type, Method method, int address )
        {
            Statement statement = new Statement( type, method, address );
            _statements.Add( statement.Address, statement );

            this.SetStatement( statement );

            return statement;
        }