Skip to content

Commit a02f62c

Browse files
feat(theme): implement UTF-8 checkbox and radiobox (#514)
Co-authored-by: Pier CeccoPierangioliEugenio <ceccopierangiolieugenio@users.noreply.github.com>
1 parent 9331c03 commit a02f62c

5 files changed

Lines changed: 14 additions & 9 deletions

File tree

libs/pyTermTk/TermTk/TTkTheme/draw_ascii.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@ class TTkTheme():
8282
'X',' ','X',
8383
'X','X','X'))
8484

85-
combobox = {'( )','(x)'}
86-
checkbox = {'[ ]','[x]','[/]'}
85+
radiobox = (' ','X')
86+
checkbox = (' ','X','/')
8787

8888
hscroll = ('<','-','X','>')
8989
vscroll = ('^','|','X','v')

libs/pyTermTk/TermTk/TTkTheme/draw_utf8.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,8 @@ class TTkTheme():
138138
└─┘ ╘═╛ ╚═╝ └─┘
139139
'''
140140

141-
combobox = {'◯','◉'}
142-
checkbox = {'□','▣','◪'}
141+
radiobox = ('◯','◉')
142+
checkbox = ('□','▣','◪')
143143

144144
hscroll = ('◀','┄','▓','▶')
145145
vscroll = ('▲','┊','▓','▼')

libs/pyTermTk/TermTk/TTkTheme/theme.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ class TTkTheme():
4444
box = draw_utf8.TTkTheme.box
4545
grid = draw_utf8.TTkTheme.grid
4646
buttonBox = draw_utf8.TTkTheme.buttonBox
47+
radiobox = draw_utf8.TTkTheme.radiobox
48+
checkbox = draw_utf8.TTkTheme.checkbox
4749
hscroll = draw_utf8.TTkTheme.hscroll
4850
vscroll = draw_utf8.TTkTheme.vscroll
4951
tree = draw_utf8.TTkTheme.tree
@@ -79,6 +81,8 @@ def loadTheme(theme):
7981
TTkTheme.box = theme['draw'].TTkTheme.box
8082
TTkTheme.grid = theme['draw'].TTkTheme.grid
8183
TTkTheme.buttonBox = theme['draw'].TTkTheme.buttonBox
84+
TTkTheme.radiobox = theme['draw'].TTkTheme.radiobox
85+
TTkTheme.checkbox = theme['draw'].TTkTheme.checkbox
8286
TTkTheme.hscroll = theme['draw'].TTkTheme.hscroll
8387
TTkTheme.vscroll = theme['draw'].TTkTheme.vscroll
8488
TTkTheme.tree = theme['draw'].TTkTheme.tree

libs/pyTermTk/TermTk/TTkWidgets/checkbox.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -210,9 +210,10 @@ def paintEvent(self, canvas: TTkCanvas) -> None:
210210
canvas.drawText(pos=(0,0), color=borderColor ,text="[ ]")
211211
canvas.drawText(pos=(3,0), color=textColor ,text=self._text)
212212
text = {
213-
TTkK.Checked : "X",
214-
TTkK.Unchecked : " ",
215-
TTkK.PartiallyChecked: "/"}.get(self._checkStatus, " ")
213+
TTkK.Unchecked : TTkCfg.theme.checkbox[0], # ' ' or '□'
214+
TTkK.Checked : TTkCfg.theme.checkbox[1], # 'X' or '▣'
215+
TTkK.PartiallyChecked: TTkCfg.theme.checkbox[2] # '/' or '◪'
216+
}.get(self._checkStatus, TTkCfg.theme.checkbox[0])
216217
canvas.drawText(pos=(1,0), color=xColor ,text=text)
217218

218219
def _pressEvent(self) -> bool:

libs/pyTermTk/TermTk/TTkWidgets/radiobutton.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,9 @@ def paintEvent(self, canvas):
183183
canvas.drawText(pos=(0,0), color=borderColor ,text="( )")
184184
canvas.drawText(pos=(3,0), color=textColor ,text=self._text)
185185
if self._checked:
186-
canvas.drawText(pos=(1,0), color=xColor ,text="X")
186+
canvas.drawText(pos=(1,0), color=xColor ,text=TTkCfg.theme.radiobox[1]) # 'X' or '◉'
187187
else:
188-
canvas.drawText(pos=(1,0), color=xColor ,text=" ")
188+
canvas.drawText(pos=(1,0), color=xColor ,text=TTkCfg.theme.radiobox[0]) # ' ' or '◯'
189189

190190
def _checkEvent(self):
191191
# Uncheck the radio already checked;

0 commit comments

Comments
 (0)