public EditChangeSelectionCommand(Layer layer,
            TileSelection currentTileSelection,
            ChangeSelectionType changeSelectionType)
        {
            m_layer = layer;
            m_currentTileSelection = currentTileSelection;
            m_oldTileSelection = new TileSelection(currentTileSelection);
            m_changeSelectionType = changeSelectionType;

            switch (m_changeSelectionType)
            {
                case ChangeSelectionType.SelectAll:
                    m_description = "Select all tiles";
                    break;
                case ChangeSelectionType.Clear:
                    m_description = "Clear tile selection";
                    break;
                case ChangeSelectionType.Invert:
                    m_description = "Invert tile selection";
                    break;
            }
        }
        public EditChangeSelectionCommand(Layer layer,
                                          TileSelection currentTileSelection,
                                          ChangeSelectionType changeSelectionType)
        {
            m_layer = layer;
            m_currentTileSelection = currentTileSelection;
            m_oldTileSelection     = new TileSelection(currentTileSelection);
            m_changeSelectionType  = changeSelectionType;

            switch (m_changeSelectionType)
            {
            case ChangeSelectionType.SelectAll:
                m_description = "Select all tiles";
                break;

            case ChangeSelectionType.Clear:
                m_description = "Clear tile selection";
                break;

            case ChangeSelectionType.Invert:
                m_description = "Invert tile selection";
                break;
            }
        }