/*
 * 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 Window
[
    Automation = FALSE ;
]
{
    SID_HYPERLINK_DIALOG
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_RUBY_DIALOG
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_NAVIGATOR // status(final|play)
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_TASKPANE // status(final|play)
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_SIDEBAR // status(final|play)
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_SHOW_BROWSER // ole(no) api(final/play/rec)
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_BROWSER // ole(no) api()
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_VIEW_DATA_SOURCE_BROWSER// ole(no) api()
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_PARTWIN // ole(no) api()
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_TIPWINDOW
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_SEARCH_DLG // ole(no) api(final/play/rec)
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_TOGGLESTATUSBAR // ole(no) api(final/play/rec)
    [
        ExecMethod = MiscExec_Impl ;
        StateMethod = MiscState_Impl ;
    ]
    SID_RECORDMACRO // ole(no) api(final/play/norec)
    [
        ExecMethod = MiscExec_Impl ;
        StateMethod = MiscState_Impl ;
    ]
    SID_STOP_RECORDING // ole(no) api(final/play/norec)
    [
        ExecMethod = MiscExec_Impl ;
        StateMethod = MiscState_Impl ;
    ]
    SID_STYLE_DESIGNER // ole(no) api(final/play/rec)
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_RECORDING_FLOATWINDOW // ole(no) api(final/play/rec)
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]

    // Pre-defined docking window slots (usable by internal docking windows)
    SID_DOCKWIN_0
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_1
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_2
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_3
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_4
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_5
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_6
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_7
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_8
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_9
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
/*  Be careful!
    You also have to make changes in:
    - sfx2/sdi/sfx.sdi
    - sfx2/source/dialog/dockwin.cxx
    - sfx2/sdi/frmslots.sdi
    - sfx2/inc/sfx2/sfxsids.hrc

    SID_DOCKWIN_10
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_11
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_12
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_13
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_14
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_15
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_16
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_17
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_18
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_19
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_20
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_21
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_22
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_23
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_24
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_25
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_26
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_27
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_28
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
    SID_DOCKWIN_29
    [
        ExecMethod = ChildWindowExecute ;
        StateMethod = ChildWindowState ;
    ]
*/
    // Window.GetFrameWindow( "Name" )
    SID_FILLFRAME
    [
        ExecMethod = ExecView_Impl;
    ]

    // Only for Designers: Slot must be present
    SID_STYLE_NEW
    [
    ]

    // Only for Designers: Slot must be present
    SID_STYLE_DRAGHIERARCHIE
    [
    ]
    SID_CLEARHISTORY // ole(no) api(final/play/rec)
    [
        ExecMethod = ExecHistory_Impl ;
        StateMethod = StateHistory_Impl ;
    ]
    SID_UNDO // ole(no) api(final/play/rec)
    [
        ExecMethod = ExecHistory_Impl ;
        StateMethod = StateHistory_Impl ;
    ]
    SID_REDO // ole(no) api(final/play/rec)
    [
        ExecMethod = ExecHistory_Impl ;
        StateMethod = StateHistory_Impl ;
    ]
    SID_REPEAT // ole(no) api(final/play/rec)
    [
        ExecMethod = ExecHistory_Impl ;
        StateMethod = StateHistory_Impl ;
    ]
    SID_CURRENT_URL // ole(no) api(no)
    [
        StateMethod = MiscState_Impl ;
    ]
    // Stringlist mit den Verben( SFX only )
    SID_OBJECT // ole(no) api(no)
    [
        StateMethod = GetState_Impl ;
        ExecMethod = ExecView_Impl ;
    ]
    SID_TERMINATE_INPLACEACTIVATION
    [
        ExecMethod = ExecView_Impl ;
    ]
}

interface BrowseWindow : Window
[
    Automation = FALSE ;
]
{
    SID_ACTIVATE // ole(no) api(final/play/rec)
    [
        // Implementations in Subclasses
    ]
    SID_NEWWINDOW // ole(no) api(play/rec)
    [
        ExecMethod = ExecView_Impl ;
        StateMethod = StateView_Impl ;
    ]
    SID_EDITDOC // ole(?opt) api(play/rec)
    [
        ExecMethod = ExecReload_Impl ;
        StateMethod = StateReload_Impl ;
    ]
    SID_RELOAD // ole(?opt) api(play/rec)
    [
        ExecMethod = ExecReload_Impl ;
        StateMethod = StateReload_Impl ;
    ]
    SID_VIEWSHELL // ole(no) api(no)
    [
        ExecMethod = ExecView_Impl ;
        StateMethod = StateView_Impl ;
    ]
    SID_VIEWSHELL0 // ole(no) api(no)
    [
        ExecMethod = ExecView_Impl ;
        StateMethod = StateView_Impl ;
    ]
    SID_VIEWSHELL1 // ole(no) api(no)
    [
        ExecMethod = ExecView_Impl ;
        StateMethod = StateView_Impl ;
    ]
    SID_VIEWSHELL2 // ole(no) api(no)
    [
        ExecMethod = ExecView_Impl ;
        StateMethod = StateView_Impl ;
    ]
    SID_VIEWSHELL3 // ole(no) api(no)
    [
        ExecMethod = ExecView_Impl ;
        StateMethod = StateView_Impl ;
    ]
    SID_VIEWSHELL4 // ole(no) api(no)
    [
        ExecMethod = ExecView_Impl ;
        StateMethod = StateView_Impl ;
    ]
}

interface TopWindow : BrowseWindow
[
    Automation = FALSE ;
]
{
    SID_NEWDOCDIRECT // ole(no) api(no)
    [
        ExecMethod = Exec_Impl ;
        StateMethod = GetState_Impl ;
    ]
    SID_WIN_FULLSCREEN // ole(no) api(final/play/rec)
    [
        ExecMethod = MiscExec_Impl ;
        StateMethod = MiscState_Impl ;
    ]
    SID_CLOSEWIN // ole(no) api(final/play/rec)
    [
        ExecMethod = Exec_Impl ;
        StateMethod = GetState_Impl ;
    ]
    SID_BROWSE_FORWARD // ole(no) api()
    [
        ExecMethod = INetExecute_Impl ;
        StateMethod = INetState_Impl ;
    ]
    SID_BROWSE_BACKWARD // ole(no) api()
    [
        ExecMethod = INetExecute_Impl ;
        StateMethod = INetState_Impl ;
    ]
    SID_CREATELINK // ole(no) api()
    [
        ExecMethod = INetExecute_Impl ;
        StateMethod = INetState_Impl ;
    ]
    SID_FOCUSURLBOX // ole(no) api(final/play/rec)
    [
        ExecMethod = INetExecute_Impl ;
        StateMethod = INetState_Impl ;
    ]
}



shell SfxViewFrame
{
    import TopWindow [Automation];

    SID_FORMATMENUSTATE
    [
        StateMethod = MiscState_Impl ;
    ]

    SID_ACTIVATE // ole(no) api(final/play/rec)
    [
        ExecMethod = Exec_Impl ;
        StateMethod = GetState_Impl ;
    ]

    SID_SHOWPOPUPS
    [
        ExecMethod = Exec_Impl ;
        StateMethod = GetState_Impl ;
    ]
}