summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2021-10-28 04:58:54 -0500
committerJeff Carr <[email protected]>2021-10-28 04:58:54 -0500
commitac1d35a358a4503cbced3f4f8411935d09b255b3 (patch)
treef43626b882df36b1b7ff2a04a184d989eb1757e1
parent983a60903badac53d1418065843e0d814eb2cb67 (diff)
DOCS: try to start making correct go docs
Signed-off-by: Jeff Carr <[email protected]>
-rw-r--r--demo-window.go72
-rw-r--r--doc.go72
-rw-r--r--entry.go2
-rw-r--r--example_test.go45
-rw-r--r--find.go2
5 files changed, 119 insertions, 74 deletions
diff --git a/demo-window.go b/demo-window.go
index 144f6ac..12cbe73 100644
--- a/demo-window.go
+++ b/demo-window.go
@@ -6,78 +6,6 @@ import _ "github.com/andlabs/ui/winmanifest"
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 {
hbox := n.uiBox
if (hbox == nil) {
diff --git a/doc.go b/doc.go
new file mode 100644
index 0000000..2b324c9
--- /dev/null
+++ b/doc.go
@@ -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
diff --git a/entry.go b/entry.go
index f3abce2..12fc835 100644
--- a/entry.go
+++ b/entry.go
@@ -53,7 +53,7 @@ func SetText(box *GuiBox, name string, value string) error {
}
spew.Dump(box.Window.EntryMap)
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]
log.Println("gui.SetText() box.Window.EntryMap[", name, "] = ", e.UiEntry.Text())
diff --git a/example_test.go b/example_test.go
new file mode 100644
index 0000000..f65cad1
--- /dev/null
+++ b/example_test.go
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2013-2016 Dave Collins <[email protected]>
+ *
+ * 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
+}
diff --git a/find.go b/find.go
index 037ce0d..9f849e7 100644
--- a/find.go
+++ b/find.go
@@ -50,7 +50,7 @@ func FindWindow(s string) *GuiWindow {
return window
}
}
- log.Printf("COULD NOT FIND WINDOW", s)
+ log.Printf("COULD NOT FIND WINDOW " + s)
return nil
}