Skip to content

listary/Listary.FileAppPlugin

Repository files navigation

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>>
    }
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~
    }
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~
    }
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~
    }