refactor(ui): wip session_view.py
This commit is contained in:
@@ -180,31 +180,25 @@ class SessionPanel(wx.Panel):
|
|||||||
def _setup(self) -> None:
|
def _setup(self) -> None:
|
||||||
main_sizer = wx.BoxSizer(wx.VERTICAL)
|
main_sizer = wx.BoxSizer(wx.VERTICAL)
|
||||||
|
|
||||||
setter_title = wx.StaticText(
|
setter_sizer = self._create_sequence_section(
|
||||||
self, label=f"Загадывает: {self._setter_name}"
|
title=f"Загадывает: {self._setter_name}",
|
||||||
|
sequence=self._setter_sequence,
|
||||||
|
sequence_length=self._sequence_length,
|
||||||
|
initial_card_state=CardState.SETTER_NOT_SET,
|
||||||
)
|
)
|
||||||
setter_sizer = wx.BoxSizer(wx.HORIZONTAL)
|
|
||||||
for _ in range(self._sequence_length):
|
|
||||||
card = Card(self, CardState.SETTER_NOT_SET)
|
|
||||||
setter_sizer.Add(card, 0, wx.ALL, 4)
|
|
||||||
self._setter_sequence.append(card)
|
|
||||||
|
|
||||||
guesser_title = wx.StaticText(
|
guesser_sizer = self._create_sequence_section(
|
||||||
self, label=f"Отгадывает: {self._guesser_name}"
|
title=f"Угадывает: {self._guesser_name}",
|
||||||
|
sequence=self._guesser_sequence,
|
||||||
|
sequence_length=self._sequence_length,
|
||||||
|
initial_card_state=CardState.GUESSER_DISABLED,
|
||||||
)
|
)
|
||||||
guesser_sizer = wx.BoxSizer(wx.HORIZONTAL)
|
|
||||||
for _ in range(self._sequence_length):
|
|
||||||
card = Card(self, CardState.GUESSER_DISABLED)
|
|
||||||
guesser_sizer.Add(card, 0, wx.ALL, 4)
|
|
||||||
self._guesser_sequence.append(card)
|
|
||||||
|
|
||||||
controls_sizer = self._create_controls_sizer()
|
controls_sizer = self._create_controls_sizer()
|
||||||
|
|
||||||
secondary_sizer = wx.BoxSizer(wx.VERTICAL)
|
secondary_sizer = wx.BoxSizer(wx.VERTICAL)
|
||||||
secondary_sizer.Add(setter_title, 0, wx.LEFT | wx.TOP, 9)
|
secondary_sizer.Add(setter_sizer, 0, wx.EXPAND)
|
||||||
secondary_sizer.Add(setter_sizer, 0, wx.ALL, 5)
|
secondary_sizer.Add(guesser_sizer, 0, wx.EXPAND)
|
||||||
secondary_sizer.Add(guesser_title, 0, wx.LEFT | wx.TOP, 9)
|
|
||||||
secondary_sizer.Add(guesser_sizer, 0, wx.ALL, 5)
|
|
||||||
secondary_sizer.Add(
|
secondary_sizer.Add(
|
||||||
controls_sizer, 0, wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, 25
|
controls_sizer, 0, wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, 25
|
||||||
)
|
)
|
||||||
@@ -213,6 +207,27 @@ class SessionPanel(wx.Panel):
|
|||||||
|
|
||||||
self.SetSizer(main_sizer)
|
self.SetSizer(main_sizer)
|
||||||
|
|
||||||
|
def _create_sequence_section(
|
||||||
|
self,
|
||||||
|
title: str,
|
||||||
|
sequence: list[Card],
|
||||||
|
sequence_length: int,
|
||||||
|
initial_card_state: CardState,
|
||||||
|
) -> wx.Sizer:
|
||||||
|
section_sizer = wx.BoxSizer(wx.VERTICAL)
|
||||||
|
title_label = wx.StaticText(self, label=title)
|
||||||
|
cards_sizer = wx.BoxSizer(wx.HORIZONTAL)
|
||||||
|
|
||||||
|
for _ in range(sequence_length):
|
||||||
|
card = Card(self, initial_card_state)
|
||||||
|
cards_sizer.Add(card, 0, wx.ALL, 4)
|
||||||
|
sequence.append(card)
|
||||||
|
|
||||||
|
section_sizer.Add(title_label, 0, wx.LEFT | wx.TOP, 9)
|
||||||
|
section_sizer.Add(cards_sizer, 0, wx.ALL, 5)
|
||||||
|
|
||||||
|
return section_sizer
|
||||||
|
|
||||||
def _create_controls_sizer(self) -> wx.Sizer:
|
def _create_controls_sizer(self) -> wx.Sizer:
|
||||||
left = wx.Button(self, label=ArrowSymbol.LEFT, size=wx.Size(145, 55))
|
left = wx.Button(self, label=ArrowSymbol.LEFT, size=wx.Size(145, 55))
|
||||||
right = wx.Button(self, label=ArrowSymbol.RIGHT, size=wx.Size(145, 55))
|
right = wx.Button(self, label=ArrowSymbol.RIGHT, size=wx.Size(145, 55))
|
||||||
@@ -279,14 +294,14 @@ class SessionPanel(wx.Panel):
|
|||||||
|
|
||||||
def update_statusbar(
|
def update_statusbar(
|
||||||
self,
|
self,
|
||||||
statusbar_text: Optional[str],
|
message: Optional[str],
|
||||||
stats: SessionStats,
|
stats: SessionStats,
|
||||||
):
|
):
|
||||||
if not self._statusbar:
|
if not self._statusbar:
|
||||||
return
|
return
|
||||||
|
|
||||||
if statusbar_text is not None:
|
if message is not None:
|
||||||
self._statusbar.SetStatusText(statusbar_text, 0)
|
self._statusbar.SetStatusText(message, 0)
|
||||||
|
|
||||||
progress = f" Прогресс {stats.setted}/{stats.total} "
|
progress = f" Прогресс {stats.setted}/{stats.total} "
|
||||||
self._statusbar.SetStatusText(progress, 1)
|
self._statusbar.SetStatusText(progress, 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user