Lay out new client structure

This commit is contained in:
Joscha 2019-05-25 13:12:28 +00:00
parent 6c4bfe2752
commit 7da4bf36d5
21 changed files with 174 additions and 1137 deletions

View file

@ -0,0 +1,26 @@
__all__ = ["MessageTreeWidget"]
class MessageTreeWidget:
"""
This widget displays an ElementSupply, including user interface like a
cursor or folding markers. It usually is part of a RoomWidget. It also
keeps a RenderedMessageCache (and maybe even other caches).
It receives key presses and mouse clicks from its parent widget. It
receives redraw requests and cache invalidation notices from the
RoomWidget.
It doesn't directly receive new messages. Rather, the RoomWidget adds them
to the ElementSupply and then submits a cache invalidation notice and a
redraw request.
It emits a "room top hit" event (unnamed as of yet). When the RoomWidget
receives this event, it should retrieve more messages from the server.
It emits a "edit" event (unnamed as of yet) when the user attempts to edit
a message. When the RoomWidget receives this event, it should open a text
editor to compose a new message, and send that message once the user
finishes editing it.
"""
pass