/*
 * 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 BaseTextSelection
{
    SID_ATTR_BRUSH
    [
        ExecMethod = Execute ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    SID_DELETE  // status(final|play)
    [
        ExecMethod = ExecDelete ;
        StateMethod = GetState ;
        FastCall = FALSE ;
    ]

    FN_BACKSPACE  // status(final|play)
    [
        ExecMethod = ExecDelete ;
        StateMethod = GetState ;
        FastCall = FALSE ;
    ]

    FN_SHIFT_BACKSPACE // status()
    [
        ExecMethod = ExecDelete ;
        StateMethod = NoState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    SID_UNDO // status(final|play)
    [
        ExecMethod = ExecUndo ;
        StateMethod = StateUndo ;
    ]

    SID_GETUNDOSTRINGS  // status(final|play)
    [
        StateMethod = StateUndo ;
    ]

    SID_REDO // status(final|play)
    [
        ExecMethod = ExecUndo ;
        StateMethod = StateUndo ;
    ]

    SID_GETREDOSTRINGS  // status(final|play)
    [
        StateMethod = StateUndo ;
    ]

    SID_REPEAT // status()
    [
        ExecMethod = ExecUndo ;
        StateMethod = StateUndo ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    SID_CUT // status(final|play)
    [
        ExecMethod = ExecClpbrd ;
        StateMethod = StateClpbrd ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    SID_COPY   // status(final|play)
    [
        ExecMethod = ExecClpbrd ;
        StateMethod = StateClpbrd ;
    ]

    SID_PASTE  // status(final|play)
    [
        ExecMethod = ExecClpbrd ;
        StateMethod = StateClpbrd ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    SID_CLIPBOARD_FORMAT_ITEMS  // status(final|play)
    [
        StateMethod = StateClpbrd ;
        ExecMethod = ExecClpbrd ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    SID_PASTE_UNFORMATTED  // status(final|play)
    [
        ExecMethod = ExecClpbrd ;
        StateMethod = StateClpbrd ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    SID_PASTE_SPECIAL  // status(final|play)
    [
        ExecMethod = ExecClpbrd ;
        StateMethod = StateClpbrd ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_PASTE_NESTED_TABLE  // status(final|play)
    [
        ExecMethod = ExecClpbrd ;
        StateMethod = StateClpbrd ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_TABLE_PASTE_ROW_BEFORE  // status(final|play)
    [
        ExecMethod = ExecClpbrd ;
        StateMethod = StateClpbrd ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_TABLE_PASTE_COL_BEFORE  // status(final|play)
    [
        ExecMethod = ExecClpbrd ;
        StateMethod = StateClpbrd ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_REPAGINATE  // status(final|play)
    [
        ExecMethod = Execute ;
        StateMethod = NoState ;
    ]

    FN_CHANGE_DBFIELD
    [
        ExecMethod = ExecField ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_UPDATE_FIELDS // status(final|play)
    [
        ExecMethod = Execute ;
        StateMethod = NoState ;
    ]

    FN_UPDATE_CHARTS // status(final|play)
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
    ]
    FN_UPDATE_ALL // status(final|play)
    [
        ExecMethod = Execute ;
        StateMethod = NoState ;
    ]

    FN_UPDATE_INPUTFIELDS  // status(final|play)
    [
        ExecMethod = Execute ;
        StateMethod = NoState ;
    ]

    FN_FRAME_TO_ANCHOR // status()
    [
        /*OS: data types incompatible?? */
        ExecMethod = Execute ;
        StateMethod = NoState ;
    ]

    FN_GOTO_NEXT_OBJ // status(final|play)
    [
        ExecMethod = Execute ;
        StateMethod = NoState ;
    ]

    FN_GOTO_PREV_OBJ // status(final|play)
    [
        ExecMethod = Execute ;
        StateMethod = NoState ;
    ]

    FN_GOTO_NEXT_MARK // status(final|play)
    [
        ExecMethod = Execute ;
        StateMethod = NoState ;
    ]

    FN_GOTO_PREV_MARK  // status(final|play)
    [
        ExecMethod = Execute ;
        StateMethod = NoState ;
    ]

    FN_PREV_BOOKMARK // status(final|play)
    [
        ExecMethod = Execute ;
        StateMethod = NoState ;
    ]

    FN_NEXT_BOOKMARK // status(final|play)
    [
        ExecMethod = Execute ;
        StateMethod = NoState ;
    ]

    SID_GALLERY_FORMATS // status()
    [
        ExecMethod = Execute ;
    ]

    SID_GALLERY_ENABLE_ADDCOPY
    [
        StateMethod = GetState;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    SID_TABLE_CELL_BACKGROUND_COLOR
    [
        ExecMethod = ExecBckCol ;
        StateMethod = GetBckColState ;
        AutoUpdate ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    SID_BACKGROUND_COLOR // status()
    [
        ExecMethod = ExecBckCol ;
        StateMethod = GetBckColState ;
        AutoUpdate ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_EDIT_REGION // status(final|play)
    [
        ExecMethod = EditRegionDialog ;
        StateMethod = GetState ;
    ]

    FN_EDIT_CURRENT_REGION // status(final|play)
    [
        ExecMethod = EditRegionDialog ;
        StateMethod = GetState ;
    ]

    FN_INSERT_REGION // status()
    [
        ExecMethod = InsertRegionDialog;
        StateMethod = GetState;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_FORMAT_PAGE_DLG  // status(final|play)
    [
        ExecMethod = ExecDlg ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_FORMAT_TITLEPAGE_DLG  // status(final|play)
    [
        ExecMethod = ExecDlg ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_FORMAT_PAGE_COLUMN_DLG  // status(final|play)
    [
        ExecMethod = ExecDlg ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_FORMAT_PAGE_SETTING_DLG
    [
        ExecMethod = ExecDlg ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_CONVERT_TABLE_TO_TEXT
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_CONVERT_TEXT_TO_TABLE
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]
    FN_CONVERT_TEXT_TABLE // status(final|play)
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_FORMAT_BORDER_DLG // status(final|play)
    [
        ExecMethod = ExecDlg ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    SID_ATTR_BORDER_INNER // status()
    [
        StateMethod = GetBorderState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

        SID_ATTR_BORDER_OUTER // status()
    [
        ExecMethod = Execute ;
        StateMethod = GetBorderState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    SID_BORDER_REDUCED_MODE
    [
        StateMethod = GetBorderState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_FORMAT_BACKGROUND_DLG  // status(final|play)
    [
        ExecMethod = ExecDlg ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    SfxBoolItem StyleWatercanMode SID_STYLE_WATERCAN // status()
    (
        SfxStringItem Param SID_STYLE_WATERCAN ,
        SfxUInt16Item Family SID_STYLE_FAMILY
    )
    [
        ExecMethod = Execute ;
        StateMethod = StateStyle ;
        NoRecord;
        GroupId = SfxGroupId::Template ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    SID_STYLE_UPDATE_BY_EXAMPLE // status()
    [
        ExecMethod = Execute ;
        StateMethod = StateStyle ;
    ]

    SID_STYLE_NEW_BY_EXAMPLE // status(fina|play)
    [
        ExecMethod = Execute ;
        StateMethod = StateStyle ;
        FastCall = TRUE; // for macro execution!
    ]
    SID_STYLE_APPLY // status(fina|play)
    [
        ExecMethod = Execute ;
        StateMethod = StateStyle ;
        FastCall = TRUE;// for macro execution!
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    SID_STYLE_FAMILY1 // status(fina|play)
    [
        StateMethod = StateStyle ;
    ]

    SID_STYLE_FAMILY2 // status(fina|play)
    [
        StateMethod = StateStyle ;
    ]

    SID_STYLE_FAMILY3 // status(fina|play)
    [
        StateMethod = StateStyle ;
    ]

    SID_STYLE_FAMILY4 // status(fina|play)
    [
        StateMethod = StateStyle ;
    ]

    SID_STYLE_FAMILY5 // status(fina|play)
    [
        StateMethod = StateStyle ;
    ]

    SID_STYLE_FAMILY6 // status(fina|play)
    [
        StateMethod = StateStyle ;
    ]

    SID_CLASSIFICATION_APPLY
    [
        ExecMethod = Execute ;
        StateMethod = StateStyle ;
    ]

    SID_CLASSIFICATION_DIALOG
    [
        ExecMethod = Execute ;
        StateMethod = StateStyle ;
    ]

    SID_PARAGRAPH_SIGN_CLASSIFY_DLG
    [
        ExecMethod = Execute ;
        StateMethod = StateStyle ;
    ]

    SID_WATERMARK
    [
        ExecMethod = Execute ;
        StateMethod = StateStyle ;
    ]

     //OS: Selection.Escape exists additionally to Window.Escape

    FN_ESCAPE // status(final|play|rec)
    [
        ExecMethod = Execute ;
    ]

    SID_IMAP
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        Toggle = FALSE;
    ]

    SID_IMAP_EXEC
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]
// Method for frames and objects
    SID_ANCHOR_MENU
    [
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_TOOL_ANCHOR_PARAGRAPH
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_TOOL_ANCHOR_CHAR
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_TOOL_ANCHOR_AT_CHAR
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_TOOL_ANCHOR_FRAME
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_SET_TRACKED_CHANGES_IN_TEXT
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_SET_TRACKED_DELETIONS_IN_MARGIN
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_SET_TRACKED_INSERTIONS_IN_MARGIN
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_SHOW_TRACKED_CHANGES_MENU
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_UPDATE_ALL_LINKS // status()
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
    ]

    FN_FRAME_WRAP   // status()
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_FRAME_WRAP_IDEAL // status()
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_FRAME_NOWRAP   // status()
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_FRAME_WRAPTHRU   // status()
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_FRAME_WRAPTHRU_TRANSP // status()
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_FRAME_WRAPTHRU_TOGGLE // status()
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_FRAME_WRAP_CONTOUR // status()
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_WRAP_ANCHOR_ONLY // status()
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_FRAME_WRAP_LEFT // status()
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_FRAME_WRAP_RIGHT // status()
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    SID_GALLERY_BG_BRUSH
    [
        ExecMethod = ExecuteGallery;
        StateMethod = GetGalleryState;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]
    SID_ATTR_BORDER_SHADOW // status(final|play)
    [
        ExecMethod = Execute ;
        StateMethod = GetState ;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    FN_XFORMS_DESIGN_MODE
    [
        ExecMethod = Execute;
        StateMethod = GetState;
    ]

    SID_ACCESSIBILITY_CHECK
    [
        ExecMethod = ExecDlg;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]

    SID_GRAPHIC_SIZE_CHECK
    [
        ExecMethod = ExecDlg;
        StateMethod = GetState;
        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
    ]
}