Create very basic message tree widget structure
Also, fix some cheuph structuring problems
This commit is contained in:
parent
7e2c802364
commit
66a67f3f28
5 changed files with 52 additions and 8 deletions
|
|
@ -7,10 +7,10 @@ from .config import *
|
||||||
from .exceptions import *
|
from .exceptions import *
|
||||||
from .markup import *
|
from .markup import *
|
||||||
from .message import *
|
from .message import *
|
||||||
from .message_cache import *
|
|
||||||
from .message_editor_widget import *
|
from .message_editor_widget import *
|
||||||
from .message_supply import *
|
from .message_supply import *
|
||||||
from .message_tree_widget import *
|
from .message_tree_widget import *
|
||||||
|
from .rendered_message_cache import *
|
||||||
from .user_list_widget import *
|
from .user_list_widget import *
|
||||||
|
|
||||||
__all__: List[str] = []
|
__all__: List[str] = []
|
||||||
|
|
@ -22,8 +22,8 @@ __all__ += config.__all__
|
||||||
__all__ += exceptions.__all__
|
__all__ += exceptions.__all__
|
||||||
__all__ += markup.__all__
|
__all__ += markup.__all__
|
||||||
__all__ += message.__all__
|
__all__ += message.__all__
|
||||||
__all__ += message_cache.__all__
|
|
||||||
__all__ += message_editor_widget.__all__
|
__all__ += message_editor_widget.__all__
|
||||||
__all__ += message_supply.__all__
|
__all__ += message_supply.__all__
|
||||||
__all__ += message_tree_widget.__all__
|
__all__ += message_tree_widget.__all__
|
||||||
|
__all__ += rendered_message_cache.__all__
|
||||||
__all__ += user_list_widget.__all__
|
__all__ += user_list_widget.__all__
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
__all__ = ["AttributedLinesWidget", "ALWidget"]
|
__all__ = ["AttributedLinesWidget"]
|
||||||
|
|
||||||
|
|
||||||
class AttributedLinesWidget:
|
class AttributedLinesWidget:
|
||||||
|
|
@ -12,5 +12,3 @@ class AttributedLinesWidget:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
ALWidget = AttributedLinesWidget
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,9 @@
|
||||||
__all__ = ["Message", "RenderedMessage"]
|
from typing import Hashable
|
||||||
|
|
||||||
|
__all__ = ["Id", "Message", "RenderedMessage"]
|
||||||
|
|
||||||
|
|
||||||
|
Id = Hashable
|
||||||
|
|
||||||
|
|
||||||
class Message:
|
class Message:
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,17 @@
|
||||||
|
from typing import Optional, Set
|
||||||
|
|
||||||
|
import urwid
|
||||||
|
import yaboli
|
||||||
|
|
||||||
|
from .attributed_lines_widget import AttributedLinesWidget
|
||||||
|
from .message import Id
|
||||||
|
from .message_supply import MessageSupply
|
||||||
|
from .rendered_message_cache import RenderedMessageCache
|
||||||
|
|
||||||
__all__ = ["MessageTreeWidget"]
|
__all__ = ["MessageTreeWidget"]
|
||||||
|
|
||||||
|
|
||||||
class MessageTreeWidget:
|
class MessageTreeWidget(urwid.WidgetWrap):
|
||||||
"""
|
"""
|
||||||
This widget displays an ElementSupply, including user interface like a
|
This widget displays an ElementSupply, including user interface like a
|
||||||
cursor or folding markers. It usually is part of a RoomWidget. It also
|
cursor or folding markers. It usually is part of a RoomWidget. It also
|
||||||
|
|
@ -24,4 +34,35 @@ class MessageTreeWidget:
|
||||||
finishes editing it.
|
finishes editing it.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
pass
|
ROOM_IS_EMPTY = "<no messages>"
|
||||||
|
|
||||||
|
def __init__(self,
|
||||||
|
room: yaboli.Room,
|
||||||
|
supply: MessageSupply,
|
||||||
|
) -> None:
|
||||||
|
|
||||||
|
self.room = room
|
||||||
|
self.supply = supply
|
||||||
|
self.rendered = RenderedMessageCache()
|
||||||
|
self.lines = AttributedLinesWidget()
|
||||||
|
self.placeholder = urwid.Filler(urwid.Text(self.ROOM_IS_EMPTY,
|
||||||
|
align=urwid.CENTER))
|
||||||
|
|
||||||
|
# If the anchor is None, but the cursor isn't, the cursor is used as
|
||||||
|
# the anchor.
|
||||||
|
self.cursor: Optional[Id] = None
|
||||||
|
self.anchor: Optional[Id] = None
|
||||||
|
self.anchor_offset = 0
|
||||||
|
|
||||||
|
self.folds: Set[Id] = set()
|
||||||
|
|
||||||
|
super().__init__(self.placeholder)
|
||||||
|
|
||||||
|
def invalidate_message(self, message_id: Id) -> None:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def invalidate_all_messages(self) -> None:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def redraw(self) -> None:
|
||||||
|
pass
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue