From 7966d7023015ba3ec5e0ed3c3e5682651b5b33fb Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 7 Jul 2014 15:03:39 -0400 Subject: [PATCH] Added Window to the redo. --- redo/window.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 redo/window.go diff --git a/redo/window.go b/redo/window.go new file mode 100644 index 0000000..6debe1f --- /dev/null +++ b/redo/window.go @@ -0,0 +1,33 @@ +// 7 july 2014 + +package ui + +// Window represents a top-level window on screen that contains other Controls. +// Windows in package ui can only contain one control; the Stack and Grid layout Controls allow you to pack multiple Controls in a Window. +// Note that a Window is not itself a Control. +type Window interface { + // SetControl creates a Request to the Window's child Control. + SetControl(c Control) *Request + + // Title and SetTitle create Requests to get and set the Window's title, respectively. + Title() *Request + SetTitle(title string) *Request + + // Show and Hide create Requests to bring the Window on-screen and off-screen, respectively. + Show() *Request + Hide() *Request + + // Close creates a Request to close the Window. + // Any Controls within the Window are destroyed, and the Window itself is also destroyed. + // Attempting to use a Window after it has been closed results in undefined behavior. + Close() *Request + + // OnClosing registers an event handler that is triggered when the user clicks the Window's close button. + // On systems where whole applications own windows, OnClosing is also triggered when the user asks to close the application. + // If this handler returns true, the Window is closed as defined by Close above. + // If this handler returns false, the Window is not closed. + OnClosing(func(c Doer) bool) + + // TODO SetSize (TODO remove?) + // TODO Center +}