summaryrefslogtreecommitdiff
path: root/lib/ui/interfaces.go
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ui/interfaces.go')
-rw-r--r--lib/ui/interfaces.go9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/ui/interfaces.go b/lib/ui/interfaces.go
index d27afe2..0cdffc1 100644
--- a/lib/ui/interfaces.go
+++ b/lib/ui/interfaces.go
@@ -4,12 +4,15 @@ import (
"github.com/gdamore/tcell"
)
+// Drawable is a UI component that can draw. Unless specified, all methods must
+// only be called from a single goroutine, the UI goroutine.
type Drawable interface {
- // Called when this renderable should draw itself
+ // Called when this renderable should draw itself.
Draw(ctx *Context)
- // Specifies a function to call when this cell needs to be redrawn
+ // Specifies a function to call when this cell needs to be redrawn. The
+ // callback may be called in any goroutine.
OnInvalidate(callback func(d Drawable))
- // Invalidates the drawable
+ // Invalidates the drawable. This can be called from any goroutine.
Invalidate()
}