diff options
| -rw-r--r-- | Makefile | 6 | ||||
| -rw-r--r-- | action.go | 30 | ||||
| -rw-r--r-- | doc.go | 2 | ||||
| -rw-r--r-- | geom.go | 10 | ||||
| -rw-r--r-- | grid.go | 2 | ||||
| -rw-r--r-- | range.go | 2 | ||||
| -rw-r--r-- | reflect.go | 3 | ||||
| -rw-r--r-- | state.go | 28 | ||||
| -rw-r--r-- | widget.go | 36 |
9 files changed, 61 insertions, 58 deletions
@@ -1,4 +1,4 @@ -all: +all: goimports vet @echo @echo This defines the primitive widgets @echo @@ -19,3 +19,7 @@ redomod: rm -f go.* GO111MODULE= go mod init GO111MODULE= go mod tidy + +vet: + @GO111MODULE=off go vet + @echo this go library builds okay @@ -7,13 +7,13 @@ type Action struct { WidgetId int ParentId int - State State + State State // Text string // what is visable to the user - ProgName string // a name useful for programming + ProgName string // a name useful for programming // most primitive widgets just store a single thing - Value any + Value any // how to arrange widgets Direction Orientation @@ -23,25 +23,25 @@ type Action struct { // These must be unique Strings []string - Range RangeType + Range RangeType // RETHINK / REDO EVERYTHING BELOW HERE // This is used for things like a slider(0,100) - X int - Y int + X int + Y int // This is for the grid size & widget position - W int - H int - AtW int - AtH int + W int + H int + AtW int + AtH int // Put space around elements to improve look & feel // Margin bool avoided due to use of action types // Pad bool // Make widgets fill up the space available - Expand bool + Expand bool } type ActionType int // Add, SetText, Click, Hide, Append, Delete, etc @@ -66,14 +66,14 @@ const ( Append Move Dump - User // the user did something (mouse, keyboard, etc) - ToolkitLoad // attempts to load a new toolkit - ToolkitInit // initializes the toolkit + User // the user did something (mouse, keyboard, etc) + ToolkitLoad // attempts to load a new toolkit + ToolkitInit // initializes the toolkit ToolkitClose // closes the toolkit ToolkitPanic Heartbeat CloseWindow - UserQuit // the user closed the GUI + UserQuit // the user closed the GUI EnableDebug // open the debugging window ) @@ -5,7 +5,6 @@ There are lots of issues when supporting multiple toolkit plugin geometries. The geometries vary widely especially between the graphical displays and the serial console ones. [Graphical Widget](http://en.wikipedia.org/Graphical_Widget) - To simplyfy this, we stick to using the concepts: ------------------------------ ^ @@ -44,6 +43,7 @@ Horizontal means layout widgets like books on a bookshelf --------------------------------- Vertical means layout widgets like books in a stack + ---------- | Widget | ---------- @@ -1,14 +1,14 @@ package widget type Geom struct { - Left any - Right any - Top any + Left any + Right any + Top any Bottom any } type Size struct { - Width any + Width any Height any } @@ -25,6 +25,7 @@ Horizontal means layout widgets like books on a bookshelf --------------------------------- Vertical means layout widgets like books in a stack + ---------- | Widget | ---------- @@ -51,5 +52,4 @@ func (s Orientation) String() string { default: return "Horizontal" } - return "Horizontal" } @@ -31,7 +31,7 @@ package widget // -------------------------------------- type GridSize struct { - Width int + Width int Height int } @@ -5,6 +5,6 @@ package widget // seem to be a good idea to use 'type any' here as it // just makes things more complicated for no good reason type RangeType struct { - Low int + Low int High int } @@ -56,7 +56,6 @@ func GetString(A any) string { // log.Warn("getString uknown kind", k, "value =", A) return "" } - return "" } // work like unix os.Exec() ? everything other than 0 is false @@ -89,7 +88,6 @@ func GetBool(A any) bool { // log.Warn("getString uknown kind", k, "value =", A) return false } - return false } // work like unix? everything other than 0 is false @@ -121,5 +119,4 @@ func GetInt(A any) int { // log.Warn("getString uknown kind", k, "value =", A) return -1 } - return -1 } @@ -1,5 +1,7 @@ package widget +// TODO: redo this with protocol buffers + // This is the state of the widget // The whole state of the widget is sent @@ -11,14 +13,14 @@ package widget // just makes things more complicated for no good reason type State struct { // This is a unmodifiable string that is displayed to the user. - Label string + Label string // most primitive widgets just store a single thing // it is the default value - DefaultS string - CurrentS string - CurrentI int - NewString string + DefaultS string + CurrentS string + CurrentI int + NewString string // most primitive widgets just store a single thing // it is the default value @@ -64,19 +66,19 @@ type State struct { Strings []string // for widgets that use a range - Range RangeType + Range RangeType - Geom Geom - Size Size + Geom Geom + Size Size - GridSize GridSize + GridSize GridSize GridOffset GridOffset // This is for the grid size & widget position - W int - H int - AtW int - AtH int + W int + H int + AtW int + AtH int // a name useful for programming and the debugger. // It is not intended to be displayed to the user @@ -17,30 +17,30 @@ type WidgetType int // Button, Menu, Checkbox, etc. const ( Unknown WidgetType = iota + 1 - Root // the master 'root' node of the binary tree - Flag // used to send configuration values to plugins - Window // in certain gui's (ncurses), these are tabs - Tab // internally, this is a window - Frame // deprecate? - Grid // like drawers in a chest - Group // like the 'Appetizers' section on a menu - Box // a vertical or horizontal stack of widgets + Root // the master 'root' node of the binary tree + Flag // used to send configuration values to plugins + Window // in certain gui's (ncurses), these are tabs + Tab // internally, this is a window + Frame // deprecate? + Grid // like drawers in a chest + Group // like the 'Appetizers' section on a menu + Box // a vertical or horizontal stack of widgets Button Checkbox // select 'on' or 'off' Dropdown Combobox // dropdown with edit=true Label - Textbox // is this a Label with edit=true - Slider // like a progress bar - Spinner // like setting the oven temperature + Textbox // is this a Label with edit=true + Slider // like a progress bar + Spinner // like setting the oven temperature Separator // TODO - Image // TODO - Area // TODO - Form // TODO - Font // TODO - Color // TODO - Dialog // TODO - Stdout // can be used to capture and display log output + Image // TODO + Area // TODO + Form // TODO + Font // TODO + Color // TODO + Dialog // TODO + Stdout // can be used to capture and display log output ) func (s WidgetType) String() string { |
