2021-04-11 05:17:20 +02:00
package gui
type BasicContext struct {
2021-11-21 03:48:49 +02:00
OnFocus func ( opts ... OnFocusOpts ) error
OnFocusLost func ( ) error
OnRender func ( ) error
// this is for pushing some content to the main view
OnRenderToMain func ( opts ... OnFocusOpts ) error
2021-04-11 05:17:20 +02:00
Kind ContextKind
Key ContextKey
ViewName string
WindowName string
OnGetOptionsMap func ( ) map [ string ] string
ParentContext Context
// we can't know on the calling end whether a Context is actually a nil value without reflection, so we're storing this flag here to tell us. There has got to be a better way around this
hasParent bool
}
2021-11-21 03:48:49 +02:00
func ( self * BasicContext ) GetOptionsMap ( ) map [ string ] string {
if self . OnGetOptionsMap != nil {
return self . OnGetOptionsMap ( )
2021-04-11 05:17:20 +02:00
}
return nil
}
2021-11-21 03:48:49 +02:00
func ( self * BasicContext ) SetParentContext ( context Context ) {
self . ParentContext = context
self . hasParent = true
2021-04-11 05:17:20 +02:00
}
2021-11-21 03:48:49 +02:00
func ( self * BasicContext ) GetParentContext ( ) ( Context , bool ) {
return self . ParentContext , self . hasParent
2021-04-11 05:17:20 +02:00
}
2021-11-21 03:48:49 +02:00
func ( self * BasicContext ) SetWindowName ( windowName string ) {
self . WindowName = windowName
2021-04-11 05:17:20 +02:00
}
2021-11-21 03:48:49 +02:00
func ( self * BasicContext ) GetWindowName ( ) string {
windowName := self . WindowName
2021-04-11 05:17:20 +02:00
if windowName != "" {
return windowName
}
// TODO: actually set this for everything so we don't default to the view name
2021-11-21 03:48:49 +02:00
return self . ViewName
2021-04-11 05:17:20 +02:00
}
2021-11-21 03:48:49 +02:00
func ( self * BasicContext ) HandleRender ( ) error {
if self . OnRender != nil {
return self . OnRender ( )
2021-04-11 05:17:20 +02:00
}
return nil
}
2021-11-21 03:48:49 +02:00
func ( self * BasicContext ) GetViewName ( ) string {
return self . ViewName
2021-04-11 05:17:20 +02:00
}
2021-11-21 03:48:49 +02:00
func ( self * BasicContext ) HandleFocus ( opts ... OnFocusOpts ) error {
if self . OnFocus != nil {
if err := self . OnFocus ( opts ... ) ; err != nil {
return err
}
}
if self . OnRenderToMain != nil {
if err := self . OnRenderToMain ( opts ... ) ; err != nil {
return err
}
}
return nil
2021-04-11 05:17:20 +02:00
}
2021-11-21 03:48:49 +02:00
func ( self * BasicContext ) HandleFocusLost ( ) error {
if self . OnFocusLost != nil {
return self . OnFocusLost ( )
2021-04-11 05:17:20 +02:00
}
return nil
}
2021-11-21 03:48:49 +02:00
func ( self * BasicContext ) HandleRenderToMain ( ) error {
if self . OnRenderToMain != nil {
return self . OnRenderToMain ( )
}
return nil
}
func ( self * BasicContext ) GetKind ( ) ContextKind {
return self . Kind
2021-04-11 05:17:20 +02:00
}
2021-11-21 03:48:49 +02:00
func ( self * BasicContext ) GetKey ( ) ContextKey {
return self . Key
2021-04-11 05:17:20 +02:00
}