DOCS: try to start making correct go docs
Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
6a477695ef
commit
57f95e9486
|
@ -6,78 +6,6 @@ import _ "github.com/andlabs/ui/winmanifest"
|
||||||
|
|
||||||
var mybox *ui.Box
|
var mybox *ui.Box
|
||||||
|
|
||||||
/*
|
|
||||||
func (n *Node) AddDemoTab(title string) {
|
|
||||||
newNode := n.AddTab(title, makeDemoTab())
|
|
||||||
if (Config.DebugNode) {
|
|
||||||
newNode.Dump()
|
|
||||||
}
|
|
||||||
tabSetMargined(newNode.uiTab)
|
|
||||||
newNode.Dump()
|
|
||||||
newNode.ListChildren(false)
|
|
||||||
addDemoGroup(newNode, "new group 1")
|
|
||||||
addDemoGroup(newNode, "new group 2")
|
|
||||||
|
|
||||||
groupNode := newNode.AddGroup("new group 3")
|
|
||||||
groupNode.AddComboBox("testing", "foo", "man", "blah")
|
|
||||||
}
|
|
||||||
|
|
||||||
func makeDemoTab() *ui.Box {
|
|
||||||
hbox := ui.NewHorizontalBox()
|
|
||||||
hbox.SetPadded(true)
|
|
||||||
|
|
||||||
group := ui.NewGroup("DemoEditBox")
|
|
||||||
group.SetMargined(true)
|
|
||||||
hbox.Append(group, true)
|
|
||||||
|
|
||||||
vbox := ui.NewVerticalBox()
|
|
||||||
vbox.SetPadded(true)
|
|
||||||
group.SetChild(vbox)
|
|
||||||
|
|
||||||
ecbox := ui.NewEditableCombobox()
|
|
||||||
ecbox.Append("foo 1")
|
|
||||||
ecbox.Append("man 2")
|
|
||||||
ecbox.Append("bar 3")
|
|
||||||
|
|
||||||
ecbox.OnChanged(func(*ui.EditableCombobox) {
|
|
||||||
log.Println("test")
|
|
||||||
test := ecbox.Text()
|
|
||||||
log.Println("test=", test)
|
|
||||||
})
|
|
||||||
|
|
||||||
vbox.Append(ecbox, false)
|
|
||||||
|
|
||||||
return hbox
|
|
||||||
}
|
|
||||||
|
|
||||||
func addDemoGroup(n *Node, title string) {
|
|
||||||
hbox := n.uiBox
|
|
||||||
if (hbox == nil) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
group := ui.NewGroup(title)
|
|
||||||
group.SetMargined(true)
|
|
||||||
hbox.Append(group, true)
|
|
||||||
|
|
||||||
vbox := ui.NewVerticalBox()
|
|
||||||
vbox.SetPadded(true)
|
|
||||||
group.SetChild(vbox)
|
|
||||||
|
|
||||||
ecbox := ui.NewEditableCombobox()
|
|
||||||
ecbox.Append("foo 1")
|
|
||||||
ecbox.Append("man 2")
|
|
||||||
ecbox.Append("bar 3")
|
|
||||||
|
|
||||||
ecbox.OnChanged(func(*ui.EditableCombobox) {
|
|
||||||
log.Println("test")
|
|
||||||
test := ecbox.Text()
|
|
||||||
log.Println("test=", test)
|
|
||||||
})
|
|
||||||
|
|
||||||
vbox.Append(ecbox, false)
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
func (n *Node) AddGroup(title string) *Node {
|
func (n *Node) AddGroup(title string) *Node {
|
||||||
hbox := n.uiBox
|
hbox := n.uiBox
|
||||||
if (hbox == nil) {
|
if (hbox == nil) {
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
/*
|
||||||
|
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
|
||||||
|
|
||||||
|
Since it is possible for custom Stringer/error interfaces to panic, spew
|
||||||
|
detects them and handles them internally by printing the panic information
|
||||||
|
inline with the output. Since spew is intended to provide deep pretty printing
|
||||||
|
capabilities on structures, it intentionally does not return any errors.
|
||||||
|
*/
|
||||||
|
package gui
|
2
entry.go
2
entry.go
|
@ -53,7 +53,7 @@ func SetText(box *GuiBox, name string, value string) error {
|
||||||
}
|
}
|
||||||
spew.Dump(box.Window.EntryMap)
|
spew.Dump(box.Window.EntryMap)
|
||||||
if (box.Window.EntryMap[name] == nil) {
|
if (box.Window.EntryMap[name] == nil) {
|
||||||
return fmt.Errorf("gui.SetText() ERROR box.Window.EntryMap[", name, "] == nil ")
|
return fmt.Errorf("gui.SetText() ERROR box.Window.EntryMap[" + name + "] == nil ")
|
||||||
}
|
}
|
||||||
e := box.Window.EntryMap[name]
|
e := box.Window.EntryMap[name]
|
||||||
log.Println("gui.SetText() box.Window.EntryMap[", name, "] = ", e.UiEntry.Text())
|
log.Println("gui.SetText() box.Window.EntryMap[", name, "] = ", e.UiEntry.Text())
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2013-2016 Dave Collins <dave@davec.name>
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package gui_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.wit.org/wit/gui"
|
||||||
|
)
|
||||||
|
|
||||||
|
// This example demonstrates how to create a NewWindow()
|
||||||
|
//
|
||||||
|
// Interacting with a GUI in a cross platform fashion adds some
|
||||||
|
// unusual problems. To obvuscate those, andlabs/ui starts a
|
||||||
|
// goroutine that interacts with the native gui toolkits
|
||||||
|
// on the Linux, MacOS, Windows, etc.
|
||||||
|
//
|
||||||
|
// Because of this oddity, to initialize a new window, the
|
||||||
|
// function is not passed any arguements and instead passes
|
||||||
|
// the information via the Config type.
|
||||||
|
//
|
||||||
|
func ExampleNewWindow() {
|
||||||
|
// Define the name and size
|
||||||
|
gui.Config.Title = "WIT GUI Window 1"
|
||||||
|
gui.Config.Width = 640
|
||||||
|
gui.Config.Height = 480
|
||||||
|
|
||||||
|
// Create the Window
|
||||||
|
gui.NewWindow()
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// You get a window
|
||||||
|
}
|
Loading…
Reference in New Issue