78 lines
1.9 KiB
Go
78 lines
1.9 KiB
Go
package widget
|
|
|
|
// This is the state of the widget
|
|
|
|
// The whole state of the widget is sent
|
|
// when the widget action is Add() or Show()
|
|
|
|
// Range(1, 10) includes the values 1 and 10
|
|
// almost all toolkits use integers so there doesn't
|
|
// seem to be a good idea to use 'type any' here as it
|
|
// 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
|
|
|
|
// most primitive widgets just store a single thing
|
|
// it is the default value
|
|
Value any
|
|
|
|
// how to arrange widgets
|
|
Direction Orientation
|
|
|
|
// for widgets that have on/off things
|
|
Checked bool
|
|
|
|
//
|
|
// This is complicated. We must send a list of all the widgets
|
|
// in the binary tree to the toolkits because some toolkits
|
|
// must make the widgets exist and then hide them.
|
|
//
|
|
// However, when a widget is not visable, no updates to the
|
|
// widget is sent to the toolkit and no events from the
|
|
// widget are valid back to the program
|
|
//
|
|
Visable bool
|
|
|
|
// this tells the toolkit to hide the widget from being displayed
|
|
// again, this is different than Visable. The hidden state is
|
|
// specifically ONLY for the gui toolkit
|
|
Hidden bool
|
|
|
|
// is the widget usable by the user?
|
|
Enable bool
|
|
|
|
// if false, pack things as tightly as possible
|
|
Pad bool
|
|
|
|
// trys to fill up available space
|
|
Expand bool
|
|
|
|
// for toolkits with borderless window options
|
|
Borderless bool
|
|
|
|
// All the strings for things like dropdown menus
|
|
// They must be sent in display order
|
|
// These must be unique
|
|
Strings []string
|
|
|
|
// for widgets that use a range
|
|
Range RangeType
|
|
|
|
Geom Geom
|
|
Size Size
|
|
|
|
GridSize GridSize
|
|
GridOffset GridOffset
|
|
|
|
// This is for the grid size & widget position
|
|
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
|
|
ProgName string
|
|
}
|