summaryrefslogtreecommitdiff
path: root/window.go
blob: 9072bdd1afae14b7ed68123cb2aabccc4335ee3f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package gui

import (
	"log"
)

//import toolkit "git.wit.org/wit/gui/toolkit/andlabs"

// This routine creates a blank window with a Title and size (W x H)
//
// This routine can not have any arguements due to the nature of how
// it can be passed via the 'andlabs/ui' queue which, because it is
// cross platform, must pass UI changes into the OS threads (that is
// my guess).
func NewWindow() *Node {
	var newNode *Node

	title := Config.Title
	// Windows are created off of the master node of the Binary Tree
	newNode = Config.master.New(title)

	newNode.Widget.Name      = title
	newNode.Widget.Width     = Config.Width
	newNode.Widget.Height    = Config.Height

	if (Config.Exit != nil) {
		newNode.custom = func() {
			Config.Exit(newNode)
		}
	}

	if (newNode.custom == nil) {
		newNode.custom = func () {StandardExit(newNode)}
	}

	newNode.Widget.Custom = newNode.custom

	log.Println("gui.Node.Window()", title)

	for _, aplug := range allPlugins {
		log.Println("gui.Node.NewWindow() toolkit plugin =", aplug.name)
		if (aplug.NewWindow == nil) {
			log.Println("gui.Node.NewWindow() is nil")
			continue
		}
		aplug.NewWindow(&newNode.Widget)
	}

	return newNode
}