diff --git a/examples/popups/main.go b/examples/popups/main.go index 8c002b1..00a9388 100644 --- a/examples/popups/main.go +++ b/examples/popups/main.go @@ -24,6 +24,7 @@ func run () { infoButton.OnClick (func () { popups.NewDialog ( popups.DialogKindInfo, + window, "Information", "You are wacky") }) @@ -34,6 +35,7 @@ func run () { questionButton.OnClick (func () { popups.NewDialog ( popups.DialogKindQuestion, + window, "The Big Question", "Are you real?", popups.Button { "Yes", func () { } }, @@ -46,6 +48,7 @@ func run () { warningButton.OnClick (func () { popups.NewDialog ( popups.DialogKindWarning, + window, "Warning", "They are fast approaching.") }) @@ -55,6 +58,7 @@ func run () { errorButton.OnClick (func () { popups.NewDialog ( popups.DialogKindError, + window, "Error", "There is nowhere left to go.") }) diff --git a/popups/dialog.go b/popups/dialog.go index 1df7ad0..18ae567 100644 --- a/popups/dialog.go +++ b/popups/dialog.go @@ -27,15 +27,21 @@ type Button struct { OnPress func () } -// NewDialog creates a new dialog window and returns it. +// NewDialog creates a new modal dialog window and returns it. If parent is nil, +// the dialog will just be a normal window func NewDialog ( kind DialogKind, + parent elements.Window, title, message string, buttons ...Button, ) ( window elements.Window, ) { - window, _ = tomo.NewWindow(2, 2) + if parent == nil { + window, _ = tomo.NewWindow(2, 2) + } else { + window, _ = parent.NewModal(2, 2) + } window.SetTitle(title) container := containers.NewContainer(basicLayouts.Dialog { true, true })