mirror of https://github.com/anoshenko/rui.git
Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
|
8fae202d75 |
19
view.go
19
view.go
|
@ -311,7 +311,7 @@ func (view *viewData) getFunc(tag PropertyName) any {
|
|||
|
||||
case FocusEvent, LostFocusEvent:
|
||||
if listeners := getNoArgEventRawListeners[View](view, nil, tag); len(listeners) > 0 {
|
||||
|
||||
return listeners
|
||||
}
|
||||
|
||||
case KeyDownEvent, KeyUpEvent:
|
||||
|
@ -354,6 +354,15 @@ func (view *viewData) getFunc(tag PropertyName) any {
|
|||
return listeners
|
||||
}
|
||||
|
||||
case changeListeners:
|
||||
if len(view.changeListener) > 0 {
|
||||
result := map[PropertyName]any{}
|
||||
for tag, listener := range view.changeListener {
|
||||
result[tag] = listener.rawListener()
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
default:
|
||||
return viewStyleGet(view, tag)
|
||||
}
|
||||
|
@ -1328,6 +1337,11 @@ func (view *viewData) handleCommand(self View, command PropertyName, data DataOb
|
|||
func (view *viewData) SetChangeListener(tag PropertyName, listener any) bool {
|
||||
if listener == nil {
|
||||
delete(view.changeListener, tag)
|
||||
if len(view.changeListener) > 0 {
|
||||
view.setRaw(changeListeners, view.changeListener)
|
||||
} else {
|
||||
view.setRaw(changeListeners, nil)
|
||||
}
|
||||
} else {
|
||||
switch listener := listener.(type) {
|
||||
case func():
|
||||
|
@ -1343,6 +1357,9 @@ func (view *viewData) SetChangeListener(tag PropertyName, listener any) bool {
|
|||
view.changeListener[tag] = newOneArgListenerVE(listener)
|
||||
|
||||
case string:
|
||||
if listener == "" {
|
||||
return view.SetChangeListener(tag, nil)
|
||||
}
|
||||
view.changeListener[tag] = newOneArgListenerBinding[View, PropertyName](listener)
|
||||
|
||||
default:
|
||||
|
|
|
@ -935,7 +935,7 @@ func propertyValueToString(tag PropertyName, value any, indent string) string {
|
|||
case []popupListener:
|
||||
return getPopupListenerBinding(value)
|
||||
|
||||
case map[PropertyName]oneArgListener[View, PropertyName]:
|
||||
case map[PropertyName]any:
|
||||
if len(value) == 0 {
|
||||
return ""
|
||||
}
|
||||
|
@ -946,7 +946,7 @@ func propertyValueToString(tag PropertyName, value any, indent string) string {
|
|||
indent2 := indent + "\t"
|
||||
buffer.WriteString("_{\n")
|
||||
for key, listener := range value {
|
||||
if text, ok := listener.rawListener().(string); ok && text != "" {
|
||||
if text, ok := listener.(string); ok && text != "" {
|
||||
buffer.WriteString(indent2)
|
||||
writeString(buffer, string(key))
|
||||
buffer.WriteString(" = ")
|
||||
|
|
Loading…
Reference in New Issue