Listary.FileAppPlugin icon indicating copy to clipboard operation
Listary.FileAppPlugin copied to clipboard

Listary file application plugin interfaces

Listary.FileAppPlugin

NuGet

Listary file application plugin interfaces.

Architecture diagrams

classDiagram
    direction TB

    note for IFileAppPlugin "A file application plugin.\nA file application can be a file manager or an application with its own file dialog."
    class IFileAppPlugin{
        <<interface>>
        IsOpenedFolderProvider: bool
        IsQuickSwitchTarget: bool
        IsSharedAcrossApplications: bool
        SearchBarType: SearchBarType
        Initialize(host: IFileAppPluginHost): Task~bool~
        BindFileWindow(hWnd: IntPtr): IFileWindow
    }
    IFileAppPlugin *-- IFileWindow : BindFileWindow()

    note for IFileWindow "A file window that can display files of different folders.\nEach folder is displayed in a container called a file tab."
    class IFileWindow{
        <<interface>>
        Handle: IntPtr
        GetCurrentTab(): Task~IFileTab~
    }
    IFileWindow *-- IFileTab : GetCurrentTab()
    IFileWindow *.. IFileTab : IGetFileTabs.GetTabs()

    note for IFileTab "A file tab that displays files from the same folder."
    class IFileTab{
        <<interface>>
    }

IFileAppPlugin

classDiagram
    direction TB

    IFileAppPlugin ..|> IOpenFolder : can
    IFileAppPlugin ..|> IOpenFolderAndSelectFile : can
    IFileAppPlugin ..|> IDisposable : can
    class IFileAppPlugin{
        <<interface>>
        IsOpenedFolderProvider: bool
        IsQuickSwitchTarget: bool
        IsSharedAcrossApplications: bool
        SearchBarType: SearchBarType
        Initialize(host: IFileAppPluginHost): Task~bool~
        BindFileWindow(hWnd: IntPtr): IFileWindow
    }

    class IDisposable{
        <<interface>>
    }

    note for IOpenFolder "Open a folder in a new file window."
    class IOpenFolder{
        <<interface>>
        OpenFolder(path: string): Task~bool~
    }

    note for IOpenFolderAndSelectFile "Open a folder in a new file window and select a specified file in it."
    class IOpenFolderAndSelectFile{
        <<interface>>
        OpenFolderAndSelectFile(path: string): Task~bool~
    }

IFileWindow

classDiagram
    direction TB

    IFileWindow ..|> IGetFileTabs : can
    IFileWindow ..|> IOpenFolder : can
    IFileWindow ..|> IOpenFolderAndSelectFile : can
    IFileWindow ..|> IDisposable : can
    class IFileWindow{
        <<interface>>
        Handle: IntPtr
        GetCurrentTab(): Task~IFileTab~
    }

    class IDisposable{
        <<interface>>
    }

    note for IGetFileTabs "Get all file tabs of this window."
    class IGetFileTabs{
        <<interface>>
        GetTabs(): Task~IEnumerable~IFileTab~~
    }

    note for IOpenFolder "Open a folder in a new file tab of this window."
    class IOpenFolder{
        <<interface>>
        OpenFolder(path: string): Task~bool~
    }

    note for IOpenFolderAndSelectFile "Open a folder in a new file tab and select a specified file in it."
    class IOpenFolderAndSelectFile{
        <<interface>>
        OpenFolderAndSelectFile(path: string): Task~bool~
    }

IFileTab

classDiagram
    direction TB

    IFileTab ..|> IGetFolder : can
    IFileTab ..|> IOpenFolder : can
    IFileTab ..|> IOpenFolderAndSelectFile : can
    IFileTab ..|> IOpenFile : can
    class IFileTab{
        <<interface>>
    }

    note for IGetFolder "Get the folder displayed in this tab."
    class IGetFolder{
        <<interface>>
        GetCurrentFolder(): Task~string~
    }

    note for IOpenFile "Open a file in this tab.\nMainly used for file dialogs."
    class IOpenFile{
        <<interface>>
        OpenFile(path: string): Task~bool~
    }

    note for IOpenFolder "Jump to a folder in this tab."
    class IOpenFolder{
        <<interface>>
        OpenFolder(path: string): Task~bool~
    }

    note for IOpenFolderAndSelectFile "Jump to a folder in this tab and select a specified file in it."
    class IOpenFolderAndSelectFile{
        <<interface>>
        OpenFolderAndSelectFile(path: string): Task~bool~
    }