From 149f40c1f2bc400d8263e23e4a2725b23b80445e Mon Sep 17 00:00:00 2001 From: gogacoder Date: Tue, 7 Jan 2025 19:02:34 +0700 Subject: [PATCH] feat: dialogs --- internal/dialogs/dialogs.go | 28 +++++++++++++++++++++++++--- internal/extras/excel/export.go | 1 + main.go | 4 +++- 3 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 internal/extras/excel/export.go diff --git a/internal/dialogs/dialogs.go b/internal/dialogs/dialogs.go index c843a48..8267aea 100644 --- a/internal/dialogs/dialogs.go +++ b/internal/dialogs/dialogs.go @@ -4,14 +4,36 @@ import ( "github.com/wailsapp/wails/v3/pkg/application" ) +var currentWindow *application.WebviewWindow + +func Init(window *application.WebviewWindow) { + if window == nil { + panic("currentWindow is nil") + } + currentWindow = window +} + +func checkInit() { + if currentWindow == nil { + panic("Initialize dialogs package before use") + } +} + func InfoDialog(title string, message string) { - application.InfoDialog().SetTitle(title).SetMessage(message).Show() + checkInit() + application.InfoDialog().AttachToWindow(currentWindow).SetTitle(title).SetMessage(message).Show() } func WarningDialog(title string, message string) { - application.WarningDialog().SetTitle(title).SetMessage(message).Show() + checkInit() + application.WarningDialog().AttachToWindow(currentWindow).SetTitle(title).SetMessage(message).Show() } func ErrorDialog(title string, message string) { - application.ErrorDialog().SetTitle(title).SetMessage(message).Show() + checkInit() + application.ErrorDialog().AttachToWindow(currentWindow).SetTitle(title).SetMessage(message).Show() +} + +func SaveFileDialog(title string) { + checkInit() } diff --git a/internal/extras/excel/export.go b/internal/extras/excel/export.go new file mode 100644 index 0000000..13916c3 --- /dev/null +++ b/internal/extras/excel/export.go @@ -0,0 +1 @@ +package excel diff --git a/main.go b/main.go index 0830b1a..62169a5 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,7 @@ package main import ( + "app/internal/dialogs" "app/internal/services" "embed" "github.com/wailsapp/wails/v3/pkg/application" @@ -28,7 +29,7 @@ func main() { // 'Mac' options tailor the window when running on macOS. // 'BackgroundColour' is the background colour of the window. // 'URL' is the URL that will be loaded into the webview. - app.NewWebviewWindowWithOptions(application.WebviewWindowOptions{ + window := app.NewWebviewWindowWithOptions(application.WebviewWindowOptions{ Title: "Завод \"Белочка\"", Mac: application.MacWindow{ InvisibleTitleBarHeight: 50, @@ -38,6 +39,7 @@ func main() { BackgroundColour: application.NewRGB(27, 38, 54), URL: "/", }) + dialogs.Init(window) err := app.Run()