summaryrefslogtreecommitdiff
path: root/doc.go
blob: 3f8bc6458e4dc575d51cd9c58b3a08f050a42592 (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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
Package wit/gui implements a abstraction layer for Go visual elements in
a cross platform way. Right now, this abstraction is built on top of
the GUI toolkit 'andlabs/ui' which does the cross platform support.

A quick overview of the features, some general design guidelines
and principles for how this package should generally work:

	* GUI elements are stored in a tree of nodes
	* When in doubt, it's ok to guess. We will return something close.
	* It tries to make your code simple

Quick Start

This section demonstrates how to quickly get started with spew.  See the
sections below for further details on formatting and configuration options.

To dump a variable with full newlines, indentation, type, and pointer
information use Dump, Fdump, or Sdump:

	package main

	import 	(
		"git.wit.org/wit/gui"
	)

	func main() {
		gui.Main(initGUI)
	}

	// This initializes the first window
	func initGUI() {
		gui.Config.Title = "WIT GUI Window 1"
		gui.Config.Width = 640
		gui.Config.Height = 480
		node1 := gui.NewWindow()
		addDemoTab(node1, "A Simple Tab Demo")
	}

	func addDemoTab(n *gui.Node, title string) {
		newNode := n.AddTab(title, nil)

		groupNode1 := newNode.AddGroup("group 1")
		groupNode1.AddComboBox("demoCombo2", "more 1", "more 2", "more 3")
	}

Configuration Options

Configuration of the GUI is handled by fields in the ConfigType type.  For
convenience, all of the top-level functions use a global state available
via the gui.Config global.

The following configuration options are available:
	* Width
		When creating a new window, this is the width

	* Height
		When creating a new window, this is the height

	* Debug
		When 'true' log more output

GUI Usage

Errors

Not sure about errors yet. To early to document them. This is a work in progress.
*/
package gui