Documentation
¶
Overview ¶
Copyright (c) 2016, redstarcoder Package draw2dui offers useful tools for drawing and handling UIs in Golang using draw2d with OpenGL.
Copyright (c) 2016, redstarcoder
Index ¶
- func NameWidget(w string) string
- type Event
- type Widget
- type WidgetCollection
- func (wc *WidgetCollection) CharPress(char rune) (Widget, Event)
- func (wc *WidgetCollection) Draw()
- func (wc *WidgetCollection) Handle() (redraw bool)
- func (wc *WidgetCollection) KeyPress(key glfw.Key, action glfw.Action, mods glfw.ModifierKey) (Widget, Event)
- func (wc *WidgetCollection) MClick(button glfw.MouseButton, action glfw.Action, mods glfw.ModifierKey) (Widget, Event)
- func (wc *WidgetCollection) MMove(xpos, ypos float64) (widget Widget, event Event)
- func (wc *WidgetCollection) Refresh()
- func (wc *WidgetCollection) Register(widget Widget)
- func (wc *WidgetCollection) Reshape(w, h int)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NameWidget ¶
NameWidget returns a unique widget name. It is thread-safe.
Types ¶
type Event ¶
type Event int
Event is for widget events
const ( // EventNone means the widget returned normally EventNone Event = iota // EventNext means the next widget should be selected EventNext // EventPrevious means the previous widget should be sekected EventPrevious // EventExit means the widget or the application should be closed EventExit // EventConfirm means the user has confirmed an action (typically they hit enter) EventConfirm // EventAction means the user modified the widget in some way (changed a dropdown, changed text) EventAction // EventSelect means the widget was selected EventSelected // EventHasCursor means the widget currently controls the cursor EventHasCursor )
type Widget ¶
type Widget interface {
// Name returns the widget's name
Name() string
// Draw draws the widget, selected determines if the widget displays as selected or not, and forceRedraw
// forces a full redraw of the widget.
Draw(selected, forceRedraw bool)
// Handle processes the widget's idle actions, selected determines if the widget behaves as selected or
// not. Returns if it needs a draw or not.
Handle(selected bool) bool
// KeyPress has the widget process a KeyPress event
KeyPress(key glfw.Key, action glfw.Action, mods glfw.ModifierKey) Event
// CharPress has the widget process a character
CharPress(char rune) Event
// MMove has the widget process a MouseMove event
MMove(xpos, ypos float64) Event
// MClick has the widget process a MouseClick event
MClick(xpos, ypos float64, button glfw.MouseButton, action glfw.Action, mods glfw.ModifierKey) Event
// SetPos changes the widget's x, y coordinates
SetPos(x, y float64)
// GetPos retrieves the widget's x, y coordinates
GetPos() (float64, float64)
// SetDimensions changes the widget's width and height
SetDimensions(w, h float64)
// GetDimensions returns the widget's width and height
GetDimensions() (float64, float64)
// IsInside checks if point x, y is inside of the widget's boundaries
IsInside(x, y float64) bool
// SetString sets the widget's string, if it supports it
SetString(s string)
// GetString returns a string, if the widget supports it
GetString() string
// SetInt sets the widget's int, if it supports it
SetInt(i int)
// GetInt returns an int, if the widget supports it
GetInt() int
// SetData sets the widget's data if it supports it. This must be a type supported by the widget.
SetData(d interface{})
// GetData returns an interface{}, if the widget supports it
GetData() interface{}
// SetEnabled enables or disables the widget
SetEnabled(enabled bool)
// GetEnabled returns whether the widget is enabled or not
GetEnabled() bool
}
Widget is an interface for draw2dui widgets
type WidgetCollection ¶
type WidgetCollection struct {
// contains filtered or unexported fields
}
WidgetCollection is a struct for managing many widgets at once. It has many helper methods for handling mouse and keyboard events.
func NewWidgetCollection ¶
func NewWidgetCollection(gc *draw2d.GraphicContext, window *glfw.Window, widgets ...Widget) *WidgetCollection
NewWidgetCollection creates a new widget collection and registers all the widgets
func (*WidgetCollection) CharPress ¶
func (wc *WidgetCollection) CharPress(char rune) (Widget, Event)
CharPress has the selected widget process a character, returning the selected widget and the event if it isn't EventNone.
func (*WidgetCollection) Draw ¶
func (wc *WidgetCollection) Draw()
Draw draws all the widgets to the screen
func (*WidgetCollection) Handle ¶
func (wc *WidgetCollection) Handle() (redraw bool)
Handle processes all the idle events for every widget in the collection. Returns whether it requests a call to WidgetCollection.Draw or not.
func (*WidgetCollection) KeyPress ¶
func (wc *WidgetCollection) KeyPress(key glfw.Key, action glfw.Action, mods glfw.ModifierKey) (Widget, Event)
KeyPress has the selected widget process a KeyPress event, returning the selected widget and the event if it isn't EventNone.
func (*WidgetCollection) MClick ¶
func (wc *WidgetCollection) MClick(button glfw.MouseButton, action glfw.Action, mods glfw.ModifierKey) (Widget, Event)
MClick has the all widgets in the collection process a MouseClick event, returning the a widget and event if it isn't EventNone.
func (*WidgetCollection) MMove ¶
func (wc *WidgetCollection) MMove(xpos, ypos float64) (widget Widget, event Event)
MMove has all the widgets in the collection process a MouseMove event, returning the a widget and event if the cursor changes. Always returns the moused-over widget, unless there isn't one, then it returns a widget that returned EventAction, if any.
func (*WidgetCollection) Refresh ¶
func (wc *WidgetCollection) Refresh()
Refresh should be called when a window refresh occurs (See: glfw.RefreshCallback)
func (*WidgetCollection) Register ¶
func (wc *WidgetCollection) Register(widget Widget)
Register adds a widget to the collection
func (*WidgetCollection) Reshape ¶
func (wc *WidgetCollection) Reshape(w, h int)
Reshape should be called whenever the draw2d.GraphicContext is resized TODO handle w & h