/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */


interface CellSelection
{
    // slots which are disabled in the DrawShell {
    FID_DEFINE_NAME             [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_DEFINE_CURRENT_NAME     [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_ADD_NAME                [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_DEFINE_COLROWNAMERANGES [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_OPENDLG_SOLVE           [ ExecMethod = Execute; StateMethod = GetState; ]
    SID_OPENDLG_OPTSOLVER       [ ExecMethod = Execute; StateMethod = GetState; ]
    SID_OPENDLG_PIVOTTABLE      [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_OPENDLG_TABOP           [ ExecMethod = Execute; StateMethod = GetBlockState; ]
    SID_FILTER                  [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_SPECIAL_FILTER          [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_DEFINE_DBNAME           [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_OPENDLG_CONSOLIDATE     [ ExecMethod = Execute; StateMethod = GetState; ]
    SID_VIEW_DATA_SOURCE_BROWSER [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_OPENDLG_FUNCTION        [ ExecMethod = Execute; StateMethod = GetCellState; ]
    SID_INS_FUNCTION            [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]

    // no Exec/StateMethod needed, but SfxDispatcher complains if the slot is not included in the shell
    SID_VALIDITY_REFERENCE []

    // database operations {
    SID_SORT_ASCENDING      [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_SORT_DESCENDING     [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_REIMPORT_DATA       [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_REFRESH_DBAREA      [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_SBA_BRW_INSERT      [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_SELECT_DB           [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_DATA_STREAMS        [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_DATA_STREAMS_PLAY   [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_DATA_STREAMS_STOP   [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_DATA_PROVIDER       [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_DATA_PROVIDER_REFRESH [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_MANAGE_XML_SOURCE   [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_SORT                [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_DATA_FORM           [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    FID_FILTER_OK           [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_AUTO_FILTER         [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_AUTOFILTER_HIDE     [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_UNFILTER            [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_SUBTOTALS           [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    SID_PIVOT_TABLE         [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
    FID_VALIDATION          [ ExecMethod = ExecuteDB; StateMethod = GetBlockState; ]
    FID_CURRENTVALIDATION   [ ExecMethod = ExecuteDB; StateMethod = GetState; ]
    SID_TEXT_TO_COLUMNS     [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]

    // } database operations


    SID_RANGE_ADDRESS   [ StateMethod = GetState; ]

    SID_HYPERLINK_SETLINK   [ ExecMethod = ExecuteEdit; ]
    SID_HYPERLINK_GETLINK   [ StateMethod = GetHLinkState; ]
    SID_UPDATECHART         [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]

    SID_RANGE_ROW           [ StateMethod = GetState; ]
    SID_RANGE_COL           [ StateMethod = GetState; ]
    SID_RANGE_TABLE         [ StateMethod = GetState; ]
    SID_RANGE_FORMULA       [ StateMethod = GetState; ]
    SID_RANGE_TEXTVALUE     [ StateMethod = GetState; ]
    SID_RANGE_NOTETEXT      [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]

    SID_ENTER_STRING        [ ExecMethod = Execute; StateMethod = GetState; ]
    SID_INSERT_MATRIX       [ ExecMethod = Execute; StateMethod = GetState; ]
    SID_MARKAREA            [ ExecMethod = Execute; ]
    SID_SELECT_SCENARIO     [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_CELL_FORMAT         [ ExecMethod = Execute; StateMethod = GetBlockState; ]
    SID_ENABLE_HYPHENATION  [ ExecMethod = Execute; StateMethod = GetBlockState; ]
    SID_PROPERTY_PANEL_CELLTEXT_DLG [ ExecMethod = Execute;]
    SID_CELL_FORMAT_BORDER  [ ExecMethod = Execute; ]
    SID_CHAR_DLG_EFFECT     [ ExecMethod = Execute; ]
    FID_ROW_HEIGHT          [ ExecMethod = Execute; StateMethod = GetState; ]
    FID_ROW_OPT_HEIGHT      [ ExecMethod = Execute; StateMethod = GetState; ]
    FID_ROW_HIDE            [ ExecMethod = Execute; StateMethod = GetState; ]
    FID_ROW_SHOW            [ ExecMethod = Execute; StateMethod = GetState; ]
    FID_COL_WIDTH           [ ExecMethod = Execute; StateMethod = GetState; ]
    FID_COL_OPT_WIDTH       [ ExecMethod = Execute; StateMethod = GetState; ]
    FID_COL_OPT_DIRECT      [ ExecMethod = Execute; StateMethod = GetState; ]
    FID_COL_HIDE            [ ExecMethod = Execute; StateMethod = GetState; ]
    FID_COL_SHOW            [ ExecMethod = Execute; StateMethod = GetState; ]
    SID_AUTOFORMAT          [ ExecMethod = Execute; StateMethod = GetBlockState; ]
    SID_SOLVE               [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_SCENARIOS           [ ExecMethod = Execute; StateMethod = GetState; ]
    SID_DETECTIVE_ADD_PRED  [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_DETECTIVE_DEL_PRED  [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_DETECTIVE_ADD_SUCC  [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_DETECTIVE_DEL_SUCC  [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_DETECTIVE_ADD_ERR   [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_DETECTIVE_INVALID   [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_DETECTIVE_REFRESH   [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_DETECTIVE_MARK_PRED [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_DETECTIVE_MARK_SUCC [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_INSERT_CURRENT_DATE     [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_INSERT_CURRENT_TIME     [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_INS_ROW             [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    FID_INS_COLUMN          [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    FID_INS_ROWS_BEFORE     [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    FID_INS_COLUMNS_BEFORE  [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    FID_INS_ROWS_AFTER      [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    FID_INS_COLUMNS_AFTER   [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    FID_INS_CELLSDOWN       [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    FID_INS_CELLSRIGHT      [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_DEL_ROWS            [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_DEL_COLS            [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    FID_INS_CELL            [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    FID_DELETE_CELL         [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    FID_INS_CELL_CONTENTS   [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_CELL_FORMAT_RESET   [ ExecMethod = Execute; StateMethod = GetBlockState; ]

    SfxVoidItem Delete SID_DELETE
    (
        SfxStringItem Flags SID_DELETE
    )
    [
        ExecMethod = ExecuteEdit ;
        StateMethod = GetBlockState ;
        GroupId = SfxGroupId::Edit ;  //FS
        MenuConfig , AccelConfig ;
    ]
    SID_DELETE_CONTENTS [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    FID_INS_ROWBRK      [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_INS_COLBRK      [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_DEL_ROWBRK      [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_DEL_COLBRK      [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_FILL_TO_BOTTOM  [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    FID_FILL_TO_RIGHT   [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    FID_FILL_TO_TOP     [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    FID_FILL_TO_LEFT    [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    FID_FILL_TAB        [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_FILL_SERIES     [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    FID_FILL_AUTO       [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_FILL_SINGLE_EDIT [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_RANDOM_NUMBER_GENERATOR_DIALOG  [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_SAMPLING_DIALOG                 [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_DESCRIPTIVE_STATISTICS_DIALOG   [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_ANALYSIS_OF_VARIANCE_DIALOG     [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_CORRELATION_DIALOG              [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_COVARIANCE_DIALOG               [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_EXPONENTIAL_SMOOTHING_DIALOG    [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_REGRESSION_DIALOG               [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_MOVING_AVERAGE_DIALOG           [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_TTEST_DIALOG                    [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_FTEST_DIALOG                    [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_ZTEST_DIALOG                    [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_CHI_SQUARE_TEST_DIALOG          [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_FOURIER_ANALYSIS_DIALOG         [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_SEARCH_RESULTS_DIALOG [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_MARKDATAAREA    [ ExecMethod = ExecuteMove; StateMethod = GetStateCursor; ]
    SID_MARKARRAYFORMULA [ ExecMethod = ExecuteMove; StateMethod = GetStateCursor; ]
    SID_SETINPUTMODE    [ ExecMethod = ExecuteMove; StateMethod = GetStateCursor; ]
    SID_FOCUS_INPUTLINE [ ExecMethod = ExecuteMove; StateMethod = GetStateCursor; ]
    SID_CUT             [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_COPY            [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_PASTE           [ ExecMethod = ExecuteEdit; StateMethod = GetClipState; ]
    SID_PASTE_SPECIAL   [ ExecMethod = ExecuteEdit; StateMethod = GetClipState; ]
    SID_PASTE_UNFORMATTED [ ExecMethod = ExecuteEdit; StateMethod = GetClipState; ]
    SID_PASTE_ONLY_TEXT   [ ExecMethod = ExecuteEdit; StateMethod = GetClipState; ]
    SID_PASTE_ONLY_FORMULA   [ ExecMethod = ExecuteEdit; StateMethod = GetClipState; ]
    SID_PASTE_ONLY_VALUE   [ ExecMethod = ExecuteEdit; StateMethod = GetClipState; ]
    SID_PASTE_TEXTIMPORT_DIALOG [ ExecMethod = ExecuteEdit; StateMethod = GetClipState; ]
    SID_CLIPBOARD_FORMAT_ITEMS  [ ExecMethod = ExecuteEdit; StateMethod = GetClipState; ]
    SID_EXTERNAL_SOURCE [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    FID_MERGE_ON        [ ExecMethod = Execute; StateMethod = GetState; ]
    FID_MERGE_OFF       [ ExecMethod = Execute; StateMethod = GetState; ]
    FID_MERGE_TOGGLE    [ ExecMethod = Execute; StateMethod = GetState; ]
    SID_OUTLINE_HIDE    [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_OUTLINE_SHOW    [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_OUTLINE_MAKE    [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_OUTLINE_REMOVE  [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_INPUTLINE_STATUS    [ ExecMethod = Execute; StateMethod = GetState; ]
    FID_INPUTLINE_ENTER     [ ExecMethod = Execute; StateMethod = GetState; ]
    FID_INPUTLINE_BLOCK     [ ExecMethod = Execute; StateMethod = GetState; ]
    FID_INPUTLINE_MATRIX    [ ExecMethod = Execute; StateMethod = GetState; ]
    SID_CHARMAP [ ExecMethod = ExecuteEdit; StateMethod = GetCellState; ]
    SID_EMOJI_CONTROL [ ExecMethod = ExecuteEdit; StateMethod = GetCellState; ]
    SID_CHARMAP_CONTROL [ ExecMethod = ExecuteEdit; StateMethod = GetCellState; ]

    SID_INSERT_POSTIT   [ ExecMethod = ExecuteEdit; StateMethod = GetCellState; ]
    SID_EDIT_POSTIT
    [
        ExecMethod = ExecuteEdit; StateMethod = GetCellState;
        FastCall, ToolBoxConfig, MenuConfig, AccelConfig;
    ]

    SID_TABOP                           [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_CONSOLIDATE                     [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_INSERT_NAME                     [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_USE_NAME                        [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_CANCEL                          [ ExecMethod = Execute; ]
    SID_TOGGLE_REL                      [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_POPUP_CONDFRMT                  []
    SID_COLUMN_OPERATIONS               [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_ROW_OPERATIONS                  [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
    SID_OPENDLG_CURRENTCONDFRMT         [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_OPENDLG_CONDFRMT                [ ExecMethod = ExecuteEdit; ]
    SID_OPENDLG_COLORSCALE              [ ExecMethod = ExecuteEdit; ]
    SID_OPENDLG_DATABAR                 [ ExecMethod = ExecuteEdit; ]
    SID_OPENDLG_ICONSET                 [ ExecMethod = ExecuteEdit; ]
    SID_OPENDLG_CONDDATE                [ ExecMethod = ExecuteEdit; ]
    SID_OPENDLG_CONDFRMT_MANAGER        [ ExecMethod = ExecuteEdit; ]
    SID_OPENDLG_CURRENTCONDFRMT_MANAGER [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_NOTE_VISIBLE                    [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_HIDE_NOTE                       [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_SHOW_NOTE                       [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_TOGGLE_NOTES                    [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_HIDE_ALL_NOTES                  [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_SHOW_ALL_NOTES                  [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    FID_DELETE_ALL_NOTES                [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_DELETE_NOTE                     [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_DEC_INDENT                      [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_INC_INDENT                      [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_SELECT_UNPROTECTED_CELLS        [ ExecMethod = ExecuteEdit;]

    SID_THESAURUS   [ ExecMethod = ExecuteEdit; StateMethod = GetCellState; ]
    SID_SPELL_DIALOG [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
    SID_HANGUL_HANJA_CONVERSION [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
        SID_CHINESE_CONVERSION          [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]

    SID_CONVERT_FORMULA_TO_VALUE [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]

    SID_TRANSLITERATE_SENTENCE_CASE [ ExecMethod = ExecuteTrans; StateMethod = GetBlockState; ]
    SID_TRANSLITERATE_TITLE_CASE    [ ExecMethod = ExecuteTrans; StateMethod = GetBlockState; ]
    SID_TRANSLITERATE_TOGGLE_CASE   [ ExecMethod = ExecuteTrans; StateMethod = GetBlockState; ]
    SID_TRANSLITERATE_ROTATE_CASE   [ ExecMethod = ExecuteRotateTrans; StateMethod = GetBlockState; ]
    SID_TRANSLITERATE_UPPER     [ ExecMethod = ExecuteTrans; StateMethod = GetBlockState; ]
    SID_TRANSLITERATE_LOWER     [ ExecMethod = ExecuteTrans; StateMethod = GetBlockState; ]
    SID_TRANSLITERATE_HALFWIDTH [ ExecMethod = ExecuteTrans; StateMethod = GetBlockState; ]
    SID_TRANSLITERATE_FULLWIDTH [ ExecMethod = ExecuteTrans; StateMethod = GetBlockState; ]
    SID_TRANSLITERATE_HIRAGANA  [ ExecMethod = ExecuteTrans; StateMethod = GetBlockState; ]
    SID_TRANSLITERATE_KATAKANA  [ ExecMethod = ExecuteTrans; StateMethod = GetBlockState; ]
    SID_AUTO_SUM  [ ExecMethod = ExecuteEdit; ]
}


interface CellMovement
{
    SID_NEXT_TABLE
    [
        ExecMethod = ExecuteMove ;
        StateMethod = GetStateCursor ;
    ]

    SID_PREV_TABLE
    [
        ExecMethod = ExecuteMove ;
        StateMethod = GetStateCursor ;
    ]

    SID_NEXT_TABLE_SEL
    [
        ExecMethod = ExecuteMove ;
        StateMethod = GetStateCursor ;
    ]

    SID_PREV_TABLE_SEL
    [
        ExecMethod = ExecuteMove ;
        StateMethod = GetStateCursor ;
    ]

    SfxVoidItem GoDown SID_CURSORDOWN
    (
        SfxInt16Item By FN_PARAM_1,
        SfxBoolItem  Sel FN_PARAM_2
    )
    [
        ExecMethod = ExecuteCursor ;
        StateMethod = GetStateCursor ;
    ]

    SfxVoidItem GoDownSel SID_CURSORDOWN_SEL
    (
        SfxInt16Item By FN_PARAM_1
    )
    [
        Export = FALSE ;
        ExecMethod = ExecuteCursorSel ;
        StateMethod = GetStateCursor ;
    ]
    SID_CURSORBLKDOWN       [ ExecMethod = ExecuteCursor;    StateMethod = GetStateCursor; ]
    SID_CURSORBLKDOWN_SEL   [ ExecMethod = ExecuteCursorSel; StateMethod = GetStateCursor; ]

    SfxVoidItem GoUp SID_CURSORUP
    (
        SfxInt16Item By FN_PARAM_1,
        SfxBoolItem  Sel FN_PARAM_2
    )
    [
        ExecMethod = ExecuteCursor ;
        StateMethod = GetStateCursor ;
    ]
    SID_CURSORUP_SEL    [ ExecMethod = ExecuteCursorSel; StateMethod = GetStateCursor; ]
    SID_CURSORBLKUP     [ ExecMethod = ExecuteCursor;    StateMethod = GetStateCursor; ]
    SID_CURSORBLKUP_SEL [ ExecMethod = ExecuteCursorSel; StateMethod = GetStateCursor; ]

    SfxVoidItem GoLeft SID_CURSORLEFT
    (
        SfxInt16Item By FN_PARAM_1,
        SfxBoolItem  Sel FN_PARAM_2
    )
    [
        ExecMethod = ExecuteCursor ;
        StateMethod = GetStateCursor ;
    ]
    SID_CURSORLEFT_SEL      [ ExecMethod = ExecuteCursorSel; StateMethod = GetStateCursor; ]
    SID_CURSORBLKLEFT       [ ExecMethod = ExecuteCursor;    StateMethod = GetStateCursor; ]
    SID_CURSORBLKLEFT_SEL   [ ExecMethod = ExecuteCursorSel; StateMethod = GetStateCursor; ]

    SfxVoidItem GoRight SID_CURSORRIGHT
    (
        SfxInt16Item By FN_PARAM_1,
        SfxBoolItem  Sel FN_PARAM_2
    )
    [
        ExecMethod = ExecuteCursor ;
        StateMethod = GetStateCursor ;
    ]

    SID_CURSORRIGHT_SEL     [ ExecMethod = ExecuteCursorSel; StateMethod = GetStateCursor; ]
    SID_CURSORBLKRIGHT      [ ExecMethod = ExecuteCursor;    StateMethod = GetStateCursor; ]
    SID_CURSORBLKRIGHT_SEL  [ ExecMethod = ExecuteCursorSel; StateMethod = GetStateCursor; ]
    SID_NEXT_UNPROTECT  [ ExecMethod = ExecuteMove; StateMethod = GetStateCursor; ]
    SID_PREV_UNPROTECT  [ ExecMethod = ExecuteMove; StateMethod = GetStateCursor; ]
    SID_CURSORENTERDOWN [ ExecMethod = ExecuteMove; StateMethod = GetStateCursor; ]
    SID_CURSORENTERUP   [ ExecMethod = ExecuteMove; StateMethod = GetStateCursor; ]

    SfxVoidItem GoDownBlock SID_CURSORPAGEDOWN
    (
        SfxInt16Item By FN_PARAM_1,
        SfxBoolItem  Sel FN_PARAM_2
    )
    [
        ExecMethod = ExecuteCursor ;
        StateMethod = GetStateCursor ;
    ]
    SID_CURSORPAGEDOWN_SEL  [ ExecMethod = ExecuteCursorSel; StateMethod = GetStateCursor; ]

    SfxVoidItem GoUpBlock SID_CURSORPAGEUP
    (
        SfxInt16Item By FN_PARAM_1,
        SfxBoolItem  Sel FN_PARAM_2
    )
    [
        ExecMethod = ExecuteCursor ;
        StateMethod = GetStateCursor ;
    ]
    SID_CURSORPAGEUP_SEL    [ ExecMethod = ExecuteCursorSel; StateMethod = GetStateCursor; ]
    SID_CURSORPAGELEFT_     [ ExecMethod = ExecuteCursor;    StateMethod = GetStateCursor; ]
    SID_CURSORPAGELEFT_SEL  [ ExecMethod = ExecuteCursorSel; StateMethod = GetStateCursor; ]
    SID_CURSORPAGERIGHT_    [ ExecMethod = ExecuteCursor;    StateMethod = GetStateCursor; ]
    SID_CURSORPAGERIGHT_SEL [ ExecMethod = ExecuteCursorSel; StateMethod = GetStateCursor; ]
    SID_ALIGNCURSOR         [ ExecMethod = ExecuteMove; StateMethod = GetStateCursor; ]

    SfxVoidItem GoToEndOfData SID_CURSORENDOFFILE
    (
        SfxBoolItem  Sel FN_PARAM_2 //XXX
    )
    [
        ExecMethod = ExecutePage ;
        StateMethod = GetStateCursor ;
    ]
    SID_CURSORENDOFFILE_SEL [ ExecMethod = ExecutePageSel; StateMethod = GetStateCursor; ]

    SfxVoidItem GoToStart SID_CURSORTOPOFFILE
    (
        SfxBoolItem  Sel FN_PARAM_2 //XXX
    )
    [
        ExecMethod = ExecutePage ;
        StateMethod = GetStateCursor ;
    ]
    SID_CURSORTOPOFSCREEN   [ ExecMethod = ExecuteMove; StateMethod = GetStateCursor; ]
    SID_CURSORENDOFSCREEN   [ ExecMethod = ExecuteMove; StateMethod = GetStateCursor; ]

    SfxVoidItem GoToStartOfRow SID_CURSORHOME
    (
        SfxBoolItem Sel FN_PARAM_2
    )
    [
        ExecMethod = ExecutePage ;
        StateMethod = GetStateCursor ;
    ]

    SID_CURSOREND   [ ExecMethod = ExecutePage; StateMethod = GetStateCursor; ]
    SID_CURSORTOPOFFILE_SEL [ ExecMethod = ExecutePageSel; StateMethod = GetStateCursor; ]
    SID_CURSORHOME_SEL      [ ExecMethod = ExecutePageSel; StateMethod = GetStateCursor; ]
    SID_CURSOREND_SEL       [ ExecMethod = ExecutePageSel; StateMethod = GetStateCursor; ]
    SID_SELECT_COL  [ ExecMethod = ExecuteMove; StateMethod = GetStateCursor; ]
    SID_SELECT_ROW  [ ExecMethod = ExecuteMove; StateMethod = GetStateCursor; ]
    SID_SELECT_NONE [ ExecMethod = ExecuteMove; StateMethod = GetStateCursor; ]
    SID_SELECTALL   [ ExecMethod = Execute;     StateMethod = GetState;       ]
    SID_STATUS_SUM      [ ExecMethod = Execute; StateMethod = GetState; ]
    SID_STATUS_DOCPOS   [ ExecMethod = Execute; StateMethod = GetState; ]
    SID_ROWCOL_SELCOUNT [ ExecMethod = Execute; StateMethod = GetState; ]
    SID_STATUS_SELMODE  [ ExecMethod = Execute; StateMethod = GetState; ]
    SID_STATUS_SELMODE_ERG  [ ExecMethod = Execute; ]
    SID_STATUS_SELMODE_ERW  [ ExecMethod = Execute; ]
    SID_STATUS_SELMODE_NORM [ ExecMethod = Execute; ]
    SID_ATTR_SIZE       [ StateMethod = GetState; ]
    SID_ATTR_POSITION   [ StateMethod = GetState; ]
    SID_TABLE_CELL
    [
        // "table cell" should not appear in change dialog
        StateMethod = GetState ;
    ]
    SID_DATA_SELECT         [ ExecMethod = Execute; StateMethod = GetState; ]
    SID_DETECTIVE_FILLMODE  [ ExecMethod = Execute; StateMethod = GetState; ] // api:
}


interface Cell
{
    import CellSelection;
    import CellMovement;
}


shell ScCellShell : ScFormatShell
{
    import Cell;
}