ocelot-desktop/src/main/scala/ocelot/desktop/ui/widget/CloseConfirmationDialog.scala
2023-06-28 14:58:06 +00:00

44 lines
1.4 KiB
Scala

package ocelot.desktop.ui.widget
import ocelot.desktop.audio.SoundSource
import ocelot.desktop.geometry.Padding2D
import ocelot.desktop.ui.layout.LinearLayout
import ocelot.desktop.ui.widget.modal.ModalDialog
import ocelot.desktop.util.Orientation
class CloseConfirmationDialog extends ModalDialog {
protected def prompt: String = "Save workspace before exiting?"
children :+= new PaddingBox(new Widget {
override val layout = new LinearLayout(this, orientation = Orientation.Vertical)
children :+= new PaddingBox(new Label {
override def text: String = prompt
}, Padding2D(bottom = 16))
children :+= new Widget {
children :+= new PaddingBox(new Button {
override def text: String = "Cancel"
override protected def clickSoundSource: SoundSource = SoundSource.InterfaceClickLow
override def onClick(): Unit = close()
}, Padding2D(left = 8))
children :+= new Filler
children :+= new PaddingBox(new Button {
override def text: String = "No"
override def onClick(): Unit = onNoSaveSelected()
}, Padding2D(right = 8))
children :+= new PaddingBox(new Button {
override def text: String = "Yes"
override def onClick(): Unit = onSaveSelected()
}, Padding2D(right = 8))
}
}, Padding2D.equal(16))
def onSaveSelected(): Unit = {}
def onNoSaveSelected(): Unit = {}
}