|
@@ -8,9 +8,9 @@ interface WindowDef {
|
|
|
declare global {
|
|
|
interface Window {
|
|
|
__TAURI__: {
|
|
|
- __windows: WindowDef[],
|
|
|
+ __windows: WindowDef[]
|
|
|
__currentWindow: WindowDef
|
|
|
- };
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -35,23 +35,29 @@ class TauriWindow {
|
|
|
* @param handler the event handler callback
|
|
|
* @param once unlisten after the first trigger if true
|
|
|
*/
|
|
|
- async listen<T>(event: string, handler: EventCallback<T>, once = false): Promise<void> {
|
|
|
- await listen(event, handler, once)
|
|
|
+ async listen<T>(
|
|
|
+ event: string,
|
|
|
+ handler: EventCallback<T>,
|
|
|
+ once = false
|
|
|
+ ): Promise<void> {
|
|
|
+ return listen(event, handler, once)
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * emits an event to the webview
|
|
|
- *
|
|
|
- * @param event the event name
|
|
|
- * @param [payload] the event payload
|
|
|
- */
|
|
|
+ * emits an event to the webview
|
|
|
+ *
|
|
|
+ * @param event the event name
|
|
|
+ * @param [payload] the event payload
|
|
|
+ */
|
|
|
async emit(event: string, payload?: string): Promise<void> {
|
|
|
- await emit(event, this.label, payload)
|
|
|
+ return emit(event, this.label, payload)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-function getTauriWindow(label: string = getCurrentWindow().label): TauriWindow | null {
|
|
|
- if (getWindows().some(w => w.label === label)) {
|
|
|
+function getTauriWindow(
|
|
|
+ label: string = getCurrentWindow().label
|
|
|
+): TauriWindow | null {
|
|
|
+ if (getWindows().some((w) => w.label === label)) {
|
|
|
return new TauriWindow(label)
|
|
|
} else {
|
|
|
return null
|
|
@@ -60,10 +66,10 @@ function getTauriWindow(label: string = getCurrentWindow().label): TauriWindow |
|
|
|
|
|
|
class WindowManager {
|
|
|
/**
|
|
|
- * Updates the window resizable flag.
|
|
|
- */
|
|
|
+ * Updates the window resizable flag.
|
|
|
+ */
|
|
|
async setResizable(resizable: boolean): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'setResizable',
|
|
@@ -78,7 +84,7 @@ class WindowManager {
|
|
|
* @param title the new title
|
|
|
*/
|
|
|
async setTitle(title: string): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'setTitle',
|
|
@@ -91,7 +97,7 @@ class WindowManager {
|
|
|
* Maximizes the window.
|
|
|
*/
|
|
|
async maximize(): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'maximize'
|
|
@@ -103,7 +109,7 @@ class WindowManager {
|
|
|
* Unmaximizes the window.
|
|
|
*/
|
|
|
async unmaximize(): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'unmaximize'
|
|
@@ -115,7 +121,7 @@ class WindowManager {
|
|
|
* Minimizes the window.
|
|
|
*/
|
|
|
async minimize(): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'minimize'
|
|
@@ -127,7 +133,7 @@ class WindowManager {
|
|
|
* Unminimizes the window.
|
|
|
*/
|
|
|
async unminimize(): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'unminimize'
|
|
@@ -139,7 +145,7 @@ class WindowManager {
|
|
|
* Sets the window visibility to true.
|
|
|
*/
|
|
|
async show(): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'show'
|
|
@@ -151,7 +157,7 @@ class WindowManager {
|
|
|
* Sets the window visibility to false.
|
|
|
*/
|
|
|
async hide(): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'hide'
|
|
@@ -165,7 +171,7 @@ class WindowManager {
|
|
|
* @param {boolean} transparent whether the the window should be transparent or not
|
|
|
*/
|
|
|
async setTransparent(transparent: boolean): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'setTransparent',
|
|
@@ -180,7 +186,7 @@ class WindowManager {
|
|
|
* @param {boolean} decorations whether the window should have borders and bars
|
|
|
*/
|
|
|
async setDecorations(decorations: boolean): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'setDecorations',
|
|
@@ -195,7 +201,7 @@ class WindowManager {
|
|
|
* @param {boolean} alwaysOnTop whether the window should always be on top of other windows or not
|
|
|
*/
|
|
|
async setAlwaysOnTop(alwaysOnTop: boolean): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'setAlwaysOnTop',
|
|
@@ -210,7 +216,7 @@ class WindowManager {
|
|
|
* @param {number} width the new window width
|
|
|
*/
|
|
|
async setWidth(width: number): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'setWidth',
|
|
@@ -225,7 +231,7 @@ class WindowManager {
|
|
|
* @param {number} height the new window height
|
|
|
*/
|
|
|
async setHeight(height: number): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'setHeight',
|
|
@@ -241,7 +247,7 @@ class WindowManager {
|
|
|
* @param {number} height the new window height
|
|
|
*/
|
|
|
async resize(width: number, height: number): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'resize',
|
|
@@ -258,7 +264,7 @@ class WindowManager {
|
|
|
* @param {number} minHeight the new window min height
|
|
|
*/
|
|
|
async setMinSize(minWidth: number, minHeight: number): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'setMinSize',
|
|
@@ -275,7 +281,7 @@ class WindowManager {
|
|
|
* @param {number} maxHeight the new window max height
|
|
|
*/
|
|
|
async setMaxSize(maxWidth: number, maxHeight: number): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'setMaxSize',
|
|
@@ -291,7 +297,7 @@ class WindowManager {
|
|
|
* @param {number} x the new window x position
|
|
|
*/
|
|
|
async setX(x: number): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'setX',
|
|
@@ -306,7 +312,7 @@ class WindowManager {
|
|
|
* @param {number} y the new window y position
|
|
|
*/
|
|
|
async setY(y: number): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'setY',
|
|
@@ -322,7 +328,7 @@ class WindowManager {
|
|
|
* @param {number} y the new window y position
|
|
|
*/
|
|
|
async setPosition(x: number, y: number): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'setPosition',
|
|
@@ -338,7 +344,7 @@ class WindowManager {
|
|
|
* @param {boolean} fullscreen whether the window should go to fullscreen or not
|
|
|
*/
|
|
|
async setFullscreen(fullscreen: boolean): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'setFullscreen',
|
|
@@ -353,7 +359,7 @@ class WindowManager {
|
|
|
* @param {string | number[]} icon icon bytes or path to the icon file
|
|
|
*/
|
|
|
async setIcon(icon: 'string' | number[]): Promise<void> {
|
|
|
- await invoke({
|
|
|
+ return invoke({
|
|
|
__tauriModule: 'Window',
|
|
|
message: {
|
|
|
cmd: 'setIcon',
|
|
@@ -365,10 +371,4 @@ class WindowManager {
|
|
|
|
|
|
const manager = new WindowManager()
|
|
|
|
|
|
-export {
|
|
|
- TauriWindow,
|
|
|
- getTauriWindow,
|
|
|
- getCurrentWindow,
|
|
|
- getWindows,
|
|
|
- manager
|
|
|
-}
|
|
|
+export { TauriWindow, getTauriWindow, getCurrentWindow, getWindows, manager }
|