Fenrir's emoji ported to cthulhu.
This commit is contained in:
1 parent
3e2429b8a5
commit
01f50c17e8
24 files changed
+1505
-9
No files matched your search
@@ -91,6 +91,7 @@ type elementState struct {
|
||||
prefix string
|
||||
}
|
||||
type Session struct {
|
||||
grid *gridSession
|
||||
title string
|
||||
elements []elementState
|
||||
focus int
|
||||
@@ -175,6 +176,9 @@ func new_session(form Form, maxItems, maxElements int) (*Session, error) {
|
||||
}
|
||||
|
||||
func (session *Session) Presentation() Presentation {
|
||||
if session.grid != nil {
|
||||
return session.grid.presentation()
|
||||
}
|
||||
if session.closed {
|
||||
return Presentation{}
|
||||
}
|
||||
@@ -208,6 +212,11 @@ func (session *Session) Presentation() Presentation {
|
||||
}
|
||||
|
||||
func (session *Session) Opening() Presentation {
|
||||
if session.grid != nil {
|
||||
output := session.grid.presentation()
|
||||
output.Speech = session.title + ". " + output.Speech
|
||||
return output
|
||||
}
|
||||
output := session.Presentation()
|
||||
if !session.closed && len(session.elements) > 1 && session.elements[session.focus].element.Kind == List {
|
||||
output.Speech = session.elements[session.focus].element.Label + ". " + output.Speech
|
||||
@@ -217,6 +226,9 @@ func (session *Session) Opening() Presentation {
|
||||
}
|
||||
|
||||
func (session *Session) Values() map[string]Value {
|
||||
if session.grid != nil {
|
||||
return session.grid.values()
|
||||
}
|
||||
values := make(map[string]Value, len(session.elements))
|
||||
for _, state := range session.elements {
|
||||
value := Value{Text: state.element.Text, Checked: state.element.Checked}
|
||||
@@ -229,6 +241,9 @@ func (session *Session) Values() map[string]Value {
|
||||
}
|
||||
|
||||
func (session *Session) Handle(event Event) Effect {
|
||||
if session.grid != nil {
|
||||
return session.grid.handle(event)
|
||||
}
|
||||
if session.closed {
|
||||
return Effect{}
|
||||
}
|
||||
@@ -459,6 +474,9 @@ func (session *Session) edit(event Event) Effect {
|
||||
// Insert handles typing and paste atomically; invalid/oversized input leaves
|
||||
// the field and selection untouched.
|
||||
func (session *Session) Insert(text string) Effect {
|
||||
if session.grid != nil {
|
||||
return Effect{}
|
||||
}
|
||||
if session.closed {
|
||||
return Effect{}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user