using System;
#nullable enable
namespace Flow.Launcher.Plugin
{
///
/// Interface for handling file dialog instances in DialogJump.
///
public interface IDialogJumpDialog : IFeatures, IDisposable
{
///
/// Check if the foreground window is a file dialog instance.
///
///
/// The handle of the foreground window to check.
///
///
/// The window if the foreground window is a file dialog instance. Null if it is not.
///
IDialogJumpDialogWindow? CheckDialogWindow(IntPtr hwnd);
}
///
/// Interface for handling a specific file dialog window in DialogJump.
///
public interface IDialogJumpDialogWindow : IDisposable
{
///
/// The handle of the dialog window.
///
IntPtr Handle { get; }
///
/// Get the current tab of the dialog window.
///
///
IDialogJumpDialogWindowTab GetCurrentTab();
}
///
/// Interface for handling a specific tab in a file dialog window in DialogJump.
///
public interface IDialogJumpDialogWindowTab : IDisposable
{
///
/// The handle of the dialog tab.
///
IntPtr Handle { get; }
///
/// Get the current folder path of the dialog tab.
///
///
string GetCurrentFolder();
///
/// Get the current file of the dialog tab.
///
///
string GetCurrentFile();
///
/// Jump to a folder in the dialog tab.
///
///
/// The path to the folder to jump to.
///
///
/// Whether folder jump is under automatical mode.
///
///
/// True if the jump was successful, false otherwise.
///
bool JumpFolder(string path, bool auto);
///
/// Jump to a file in the dialog tab.
///
///
/// The path to the file to jump to.
///
///
/// True if the jump was successful, false otherwise.
///
bool JumpFile(string path);
///
/// Open the file in the dialog tab.
///
///
/// True if the file was opened successfully, false otherwise.
///
bool Open();
}
}