mirror of
https://github.com/tauri-apps/plugins-workspace.git
synced 2026-06-06 13:53:54 +02:00
feat(window): add option to disable controls (#406)
Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
This commit is contained in:
committed by
GitHub
parent
83abea3cae
commit
a79d6d94bd
@@ -617,6 +617,69 @@ class WindowManager extends WebviewWindowHandle {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the window’s native maximize button state.
|
||||
*
|
||||
* #### Platform-specific
|
||||
*
|
||||
* - **Linux / iOS / Android:** Unsupported.
|
||||
*
|
||||
* @example
|
||||
* ```typescript
|
||||
* import { appWindow } from '@tauri-apps/plugin-window';
|
||||
* const maximizable = await appWindow.isMaximizable();
|
||||
* ```
|
||||
*
|
||||
* @returns Whether the window's native maximize button is enabled or not.
|
||||
* */
|
||||
async isMaximizable(): Promise<boolean> {
|
||||
return window.__TAURI_INVOKE__("plugin:window|is_maximizable", {
|
||||
label: this.label,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the window’s native minimize button state.
|
||||
*
|
||||
* #### Platform-specific
|
||||
*
|
||||
* - **Linux / iOS / Android:** Unsupported.
|
||||
*
|
||||
* @example
|
||||
* ```typescript
|
||||
* import { appWindow } from '@tauri-apps/plugin-window';
|
||||
* const minimizable = await appWindow.isMinimizable();
|
||||
* ```
|
||||
*
|
||||
* @returns Whether the window's native minimize button is enabled or not.
|
||||
* */
|
||||
async isMinimizable(): Promise<boolean> {
|
||||
return window.__TAURI_INVOKE__("plugin:window|is_minimizable", {
|
||||
label: this.label,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the window’s native close button state.
|
||||
*
|
||||
* #### Platform-specific
|
||||
*
|
||||
* - **iOS / Android:** Unsupported.
|
||||
*
|
||||
* @example
|
||||
* ```typescript
|
||||
* import { appWindow } from '@tauri-apps/plugin-window';
|
||||
* const closable = await appWindow.isClosable();
|
||||
* ```
|
||||
*
|
||||
* @returns Whether the window's native close button is enabled or not.
|
||||
* */
|
||||
async isClosable(): Promise<boolean> {
|
||||
return window.__TAURI_INVOKE__("plugin:window|is_closable", {
|
||||
label: this.label,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the window's current visible state.
|
||||
* @example
|
||||
@@ -713,7 +776,7 @@ class WindowManager extends WebviewWindowHandle {
|
||||
* await appWindow.requestUserAttention();
|
||||
* ```
|
||||
*
|
||||
* @param resizable
|
||||
* @param requestType
|
||||
* @returns A promise indicating the success or failure of the operation.
|
||||
*
|
||||
* @since 2.0.0
|
||||
@@ -756,6 +819,78 @@ class WindowManager extends WebviewWindowHandle {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets whether the window's native maximize button is enabled or not.
|
||||
* If resizable is set to false, this setting is ignored.
|
||||
*
|
||||
* #### Platform-specific
|
||||
*
|
||||
* - **macOS:** Disables the "zoom" button in the window titlebar, which is also used to enter fullscreen mode.
|
||||
* - **Linux / iOS / Android:** Unsupported.
|
||||
*
|
||||
* @example
|
||||
* ```typescript
|
||||
* import { appWindow } from '@tauri-apps/plugin-window';
|
||||
* await appWindow.setMaximizable(false);
|
||||
* ```
|
||||
*
|
||||
* @param maximizable
|
||||
* @returns A promise indicating the success or failure of the operation.
|
||||
*/
|
||||
async setMaximizable(maximizable: boolean): Promise<void> {
|
||||
return window.__TAURI_INVOKE__("plugin:window|set_maximizable", {
|
||||
label: this.label,
|
||||
value: maximizable,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets whether the window's native minimize button is enabled or not.
|
||||
*
|
||||
* #### Platform-specific
|
||||
*
|
||||
* - **Linux / iOS / Android:** Unsupported.
|
||||
*
|
||||
* @example
|
||||
* ```typescript
|
||||
* import { appWindow } from '@tauri-apps/plugin-window';
|
||||
* await appWindow.setMinimizable(false);
|
||||
* ```
|
||||
*
|
||||
* @param minimizable
|
||||
* @returns A promise indicating the success or failure of the operation.
|
||||
*/
|
||||
async setMinimizable(minimizable: boolean): Promise<void> {
|
||||
return window.__TAURI_INVOKE__("plugin:window|set_minimizable", {
|
||||
label: this.label,
|
||||
value: minimizable,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets whether the window's native close button is enabled or not.
|
||||
*
|
||||
* #### Platform-specific
|
||||
*
|
||||
* - **Linux:** GTK+ will do its best to convince the window manager not to show a close button. Depending on the system, this function may not have any effect when called on a window that is already visible
|
||||
* - **iOS / Android:** Unsupported.
|
||||
*
|
||||
* @example
|
||||
* ```typescript
|
||||
* import { appWindow } from '@tauri-apps/plugin-window';
|
||||
* await appWindow.setClosable(false);
|
||||
* ```
|
||||
*
|
||||
* @param closable
|
||||
* @returns A promise indicating the success or failure of the operation.
|
||||
*/
|
||||
async setClosable(closable: boolean): Promise<void> {
|
||||
return window.__TAURI_INVOKE__("plugin:window|set_closable", {
|
||||
label: this.label,
|
||||
value: closable,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the window title.
|
||||
* @example
|
||||
@@ -2123,6 +2258,18 @@ interface WindowOptions {
|
||||
* - **Android:** Unsupported.
|
||||
*/
|
||||
incognito?: boolean;
|
||||
/**
|
||||
* Whether the window's native maximize button is enabled or not. Defaults to `true`.
|
||||
*/
|
||||
maximizable?: boolean;
|
||||
/**
|
||||
* Whether the window's native minimize button is enabled or not. Defaults to `true`.
|
||||
*/
|
||||
minimizable?: boolean;
|
||||
/**
|
||||
* Whether the window's native close button is enabled or not. Defaults to `true`.
|
||||
*/
|
||||
closable?: boolean;
|
||||
}
|
||||
|
||||
function mapMonitor(m: Monitor | null): Monitor | null {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -115,6 +115,9 @@ getter!(is_maximized, bool);
|
||||
getter!(is_focused, bool);
|
||||
getter!(is_decorated, bool);
|
||||
getter!(is_resizable, bool);
|
||||
getter!(is_maximizable, bool);
|
||||
getter!(is_minimizable, bool);
|
||||
getter!(is_closable, bool);
|
||||
getter!(is_visible, bool);
|
||||
getter!(title, String);
|
||||
getter!(current_monitor, Option<Monitor>);
|
||||
@@ -125,6 +128,9 @@ getter!(theme, Theme);
|
||||
setter!(center);
|
||||
setter!(request_user_attention, Option<UserAttentionType>);
|
||||
setter!(set_resizable, bool);
|
||||
setter!(set_maximizable, bool);
|
||||
setter!(set_minimizable, bool);
|
||||
setter!(set_closable, bool);
|
||||
setter!(set_title, &str);
|
||||
setter!(maximize);
|
||||
setter!(unmaximize);
|
||||
|
||||
@@ -43,6 +43,9 @@ pub fn init<R: Runtime>() -> TauriPlugin<R> {
|
||||
desktop_commands::is_focused,
|
||||
desktop_commands::is_decorated,
|
||||
desktop_commands::is_resizable,
|
||||
desktop_commands::is_maximizable,
|
||||
desktop_commands::is_minimizable,
|
||||
desktop_commands::is_closable,
|
||||
desktop_commands::is_visible,
|
||||
desktop_commands::title,
|
||||
desktop_commands::current_monitor,
|
||||
@@ -53,6 +56,9 @@ pub fn init<R: Runtime>() -> TauriPlugin<R> {
|
||||
desktop_commands::center,
|
||||
desktop_commands::request_user_attention,
|
||||
desktop_commands::set_resizable,
|
||||
desktop_commands::set_maximizable,
|
||||
desktop_commands::set_minimizable,
|
||||
desktop_commands::set_closable,
|
||||
desktop_commands::set_title,
|
||||
desktop_commands::maximize,
|
||||
desktop_commands::unmaximize,
|
||||
|
||||
Reference in New Issue
Block a user