Browse Source

Reworked the color foreground/background method and aligned toe code to it

pull/292/head
Eugenio Parodi 1 year ago
parent
commit
4a073cfd53
  1. 4
      TermTk/TTkCore/canvas.py
  2. 13
      TermTk/TTkCore/color.py
  3. 42
      TermTk/TTkWidgets/TTkPickers/colorpicker.py
  4. 8
      TermTk/TTkWidgets/TTkPickers/textpicker.py
  5. 10
      demo/showcase/textedit.py
  6. 10
      tests/t.ui/test.ui.020.TextEdit.01.UndoRedo.py
  7. 10
      tools/dumb.image.tool.py
  8. 25
      tools/dumbPaintTool/app/canvaslayer.py
  9. 12
      tools/dumbPaintTool/app/importimage.py
  10. 12
      tools/dumbPaintTool/app/paintarea.py
  11. 8
      tools/dumbPaintTool/app/painttoolkit.py
  12. 8
      tools/dumbPaintTool/app/palette.py
  13. 10
      tools/dumbPaintTool/app/textarea.py
  14. 4
      tools/dumbPaintTool/app/toolspanel.py
  15. 10
      tools/ttkDesigner/app/notepad.py

4
TermTk/TTkCore/canvas.py

@ -42,6 +42,8 @@ class TTkCanvas():
'_data', '_colors', '_data', '_colors',
'_bufferedData', '_bufferedColors', '_bufferedData', '_bufferedColors',
'_visible', '_transparent', '_doubleBuffer') '_visible', '_transparent', '_doubleBuffer')
_data:list[str]
_colors:list[TTkColor]
def __init__(self, def __init__(self,
width:int=0, width:int=0,
height:int=0) -> None: height:int=0) -> None:
@ -50,7 +52,7 @@ class TTkCanvas():
self._doubleBuffer = False self._doubleBuffer = False
self._width = 0 self._width = 0
self._height = 0 self._height = 0
self._data = [[]] self._data = [[]]
self._colors = [[]] self._colors = [[]]
self._newWidth = width self._newWidth = width
self._newHeight = height self._newHeight = height

13
TermTk/TTkCore/color.py

@ -64,7 +64,8 @@ from TermTk.TTkCore.helper import TTkHelper
class _TTkColor: class _TTkColor:
__slots__ = ('_fg','_bg', '_colorMod', '_buffer', '_clean') __slots__ = ('_fg','_bg', '_colorMod', '_buffer', '_clean')
_fg: tuple[int]; _bg: tuple[int]; _fg: tuple[int]
_bg: tuple[int]
def __init__(self, def __init__(self,
fg:tuple[int]=None, fg:tuple[int]=None,
bg:tuple[int]=None, bg:tuple[int]=None,
@ -80,13 +81,19 @@ class _TTkColor:
if self._fg: if self._fg:
return _TTkColor(fg=self._fg) return _TTkColor(fg=self._fg)
else: else:
return None return TTkColor.RST
def background(self): def background(self):
if self._bg: if self._bg:
return _TTkColor(bg=self._bg) return _TTkColor(bg=self._bg)
else: else:
return None return TTkColor.RST
def hasForeground(self) -> bool:
return True if self._fg else False
def hasBackground(self) -> bool:
return True if self._bg else False
def bold(self) -> bool: def bold(self) -> bool:
return False return False

42
TermTk/TTkWidgets/TTkPickers/colorpicker.py

@ -207,10 +207,10 @@ class _TTkColorButton(TTkButton):
style = self.style() style = self.style()
for t in style: for t in style:
if 'color' in style[t]: if 'color' in style[t]:
if fg := color.foreground(): if TTkK.ColorType.Foreground & (colorType := color.colorType()):
style[t]['color'] = fg.invertFgBg() style[t]['color'] = color.foreground().invertFgBg()
elif bg := color.background(): elif TTkK.ColorType.Background & colorType:
style[t]['color'] = bg style[t]['color'] = color.background()
else: else:
style[t]['color'] = TTkColor.BG_BLACK style[t]['color'] = TTkColor.BG_BLACK
self.setStyle(style) self.setStyle(style)
@ -223,12 +223,16 @@ class _TTkColorButton(TTkButton):
self._returnType = returnType self._returnType = returnType
def color(self) -> TTkColor: def color(self) -> TTkColor:
fg = self._color.foreground()
bg = self._color.background()
if self._returnType==TTkK.ColorPickerReturnType.Foreground: if self._returnType==TTkK.ColorPickerReturnType.Foreground:
return fg if fg else bg.invertFgBg() if bg else TTkColor.RST if self._color.colorType() & TTkK.ColorType.Foreground:
return self._color.foreground()
else:
return self._color.background().invertFgBg()
if self._returnType==TTkK.ColorPickerReturnType.Background: if self._returnType==TTkK.ColorPickerReturnType.Background:
return bg if bg else fg.invertFgBg() if fg else TTkColor.RST if self._color.colorType() & TTkK.ColorType.Background:
return self._color.background()
else:
return self._color.foreground().invertFgBg()
return self._color return self._color
def isCustom(self) -> bool: def isCustom(self) -> bool:
@ -549,12 +553,16 @@ class TTkColorDialogPicker(TTkWindow):
:return: the current color :return: the current color
:rtype: :py:class:`TTkColor` :rtype: :py:class:`TTkColor`
''' '''
fg = self._color.foreground()
bg = self._color.background()
if self._returnType==TTkK.ColorPickerReturnType.Foreground: if self._returnType==TTkK.ColorPickerReturnType.Foreground:
return fg if fg else bg.invertFgBg() if bg else TTkColor.RST if self._color.colorType() & TTkK.ColorType.Foreground:
return self._color.foreground()
else:
return self._color.background().invertFgBg()
if self._returnType==TTkK.ColorPickerReturnType.Background: if self._returnType==TTkK.ColorPickerReturnType.Background:
return bg if bg else fg.invertFgBg() if fg else TTkColor.RST if self._color.colorType() & TTkK.ColorType.Background:
return self._color.background()
else:
return self._color.foreground().invertFgBg()
return self._color return self._color
def setColor(self, color:TTkColor) -> None: def setColor(self, color:TTkColor) -> None:
@ -663,10 +671,12 @@ class TTkColorButtonPicker(_TTkColorButton):
@pyTTkSlot(TTkColor) @pyTTkSlot(TTkColor)
def _processColorSelected(self, color:TTkColor): def _processColorSelected(self, color:TTkColor):
if fg := self.color().foreground(): if TTkK.ColorType.Foreground & (colorType := color.colorType()):
bg = fg.invertFgBg() fg = color.foreground()
elif bg := self.color().background(): bg = color.foreground().invertFgBg()
fg = bg.invertFgBg() elif TTkK.ColorType.Background & colorType:
fg = color.background().invertFgBg()
bg = color.background()
else: else:
fg = TTkColor.BLACK fg = TTkColor.BLACK
bg = TTkColor.BG_BLACK bg = TTkColor.BG_BLACK

8
TermTk/TTkWidgets/TTkPickers/textpicker.py

@ -173,18 +173,18 @@ class TTkTextDialogPicker(TTkWindow):
@pyTTkSlot(TTkColor) @pyTTkSlot(TTkColor)
def _currentColorChangedCB(format:TTkColor): def _currentColorChangedCB(format:TTkColor):
if fg := format.foreground(): if TTkK.ColorType.Foreground & (colorType := format.colorType()):
cb_fg.setCheckState(TTkK.Checked) cb_fg.setCheckState(TTkK.Checked)
btn_fgColor.setEnabled() btn_fgColor.setEnabled()
btn_fgColor.setColor(fg) btn_fgColor.setColor(format.foreground())
else: else:
cb_fg.setCheckState(TTkK.Unchecked) cb_fg.setCheckState(TTkK.Unchecked)
btn_fgColor.setDisabled() btn_fgColor.setDisabled()
if bg := format.background(): if TTkK.ColorType.Background & colorType:
cb_bg.setCheckState(TTkK.Checked) cb_bg.setCheckState(TTkK.Checked)
btn_bgColor.setEnabled() btn_bgColor.setEnabled()
btn_bgColor.setColor(bg) btn_bgColor.setColor(format.background())
else: else:
cb_bg.setCheckState(TTkK.Unchecked) cb_bg.setCheckState(TTkK.Unchecked)
btn_bgColor.setDisabled() btn_bgColor.setDisabled()

10
demo/showcase/textedit.py

@ -157,19 +157,19 @@ def demoTextEdit(root=None, document=None):
fontLayout.addWidget(superSimpleHorizontalLine(),0,12,2,1) fontLayout.addWidget(superSimpleHorizontalLine(),0,12,2,1)
@ttk.pyTTkSlot(ttk.TTkColor) @ttk.pyTTkSlot(ttk.TTkColor)
def _currentColorChangedCB(format): def _currentColorChangedCB(format:ttk.TTkColor):
if fg := format.foreground(): if ttk.TTkK.ColorType.Foreground & (colorType := format.colorType()):
cb_fg.setCheckState(ttk.TTkK.Checked) cb_fg.setCheckState(ttk.TTkK.Checked)
btn_fgColor.setEnabled() btn_fgColor.setEnabled()
btn_fgColor.setColor(fg) btn_fgColor.setColor(format.foreground())
else: else:
cb_fg.setCheckState(ttk.TTkK.Unchecked) cb_fg.setCheckState(ttk.TTkK.Unchecked)
btn_fgColor.setDisabled() btn_fgColor.setDisabled()
if bg := format.background(): if ttk.TTkK.ColorType.Background & colorType:
cb_bg.setCheckState(ttk.TTkK.Checked) cb_bg.setCheckState(ttk.TTkK.Checked)
btn_bgColor.setEnabled() btn_bgColor.setEnabled()
btn_bgColor.setColor(bg) btn_bgColor.setColor(format.background())
else: else:
cb_bg.setCheckState(ttk.TTkK.Unchecked) cb_bg.setCheckState(ttk.TTkK.Unchecked)
btn_bgColor.setDisabled() btn_bgColor.setDisabled()

10
tests/t.ui/test.ui.020.TextEdit.01.UndoRedo.py

@ -76,19 +76,19 @@ def demoTextEdit(root=None, document=None):
fontLayout.addWidget(superSimpleHorizontalLine(),0,10,2,1) fontLayout.addWidget(superSimpleHorizontalLine(),0,10,2,1)
@ttk.pyTTkSlot(ttk.TTkColor) @ttk.pyTTkSlot(ttk.TTkColor)
def _currentColorChangedCB(format): def _currentColorChangedCB(format:ttk.TTkColor):
if fg := format.foreground(): if ttk.TTkK.ColorType.Foreground & (colorType := format.colorType()):
cb_fg.setCheckState(ttk.TTkK.Checked) cb_fg.setCheckState(ttk.TTkK.Checked)
btn_fgColor.setEnabled() btn_fgColor.setEnabled()
btn_fgColor.setColor(fg.invertFgBg()) btn_fgColor.setColor(format.foreground())
else: else:
cb_fg.setCheckState(ttk.TTkK.Unchecked) cb_fg.setCheckState(ttk.TTkK.Unchecked)
btn_fgColor.setDisabled() btn_fgColor.setDisabled()
if bg := format.background(): if ttk.TTkK.ColorType.Background & colorType:
cb_bg.setCheckState(ttk.TTkK.Checked) cb_bg.setCheckState(ttk.TTkK.Checked)
btn_bgColor.setEnabled() btn_bgColor.setEnabled()
btn_bgColor.setColor(bg) btn_bgColor.setColor(format.background())
else: else:
cb_bg.setCheckState(ttk.TTkK.Unchecked) cb_bg.setCheckState(ttk.TTkK.Unchecked)
btn_bgColor.setDisabled() btn_bgColor.setDisabled()

10
tools/dumb.image.tool.py

@ -84,19 +84,19 @@ class Ansieditor(ttk.TTkGridLayout):
btn_redo.clicked.connect(self._te.redo) btn_redo.clicked.connect(self._te.redo)
@ttk.pyTTkSlot(ttk.TTkColor) @ttk.pyTTkSlot(ttk.TTkColor)
def _currentColorChangedCB(format): def _currentColorChangedCB(format:ttk.TTkColor):
if fg := format.foreground(): if ttk.TTkK.ColorType.Foreground & (colorType := format.colorType()):
cb_fg.setCheckState(ttk.TTkK.Checked) cb_fg.setCheckState(ttk.TTkK.Checked)
btn_fgColor.setEnabled() btn_fgColor.setEnabled()
btn_fgColor.setColor(fg.invertFgBg()) btn_fgColor.setColor(format.foreground())
else: else:
cb_fg.setCheckState(ttk.TTkK.Unchecked) cb_fg.setCheckState(ttk.TTkK.Unchecked)
btn_fgColor.setDisabled() btn_fgColor.setDisabled()
if bg := format.background(): if ttk.TTkK.ColorType.Background & colorType:
cb_bg.setCheckState(ttk.TTkK.Checked) cb_bg.setCheckState(ttk.TTkK.Checked)
btn_bgColor.setEnabled() btn_bgColor.setEnabled()
btn_bgColor.setColor(bg) btn_bgColor.setColor(format.background())
else: else:
cb_bg.setCheckState(ttk.TTkK.Unchecked) cb_bg.setCheckState(ttk.TTkK.Unchecked)
btn_bgColor.setDisabled() btn_bgColor.setDisabled()

25
tools/dumbPaintTool/app/canvaslayer.py

@ -278,8 +278,9 @@ class CanvasLayer():
palette = outData['palette'] = [] palette = outData['palette'] = []
for row in colors: for row in colors:
for c in row: for c in row:
fg = f"{c.getHex(ttk.TTkK.Foreground)}" if c.foreground() else None colorType = c.colorType()
bg = f"{c.getHex(ttk.TTkK.Background)}" if c.background() else None fg = f"{c.getHex(ttk.TTkK.ColorType.Foreground)}" if (colorType&ttk.TTkK.ColorType.Foreground) else None
bg = f"{c.getHex(ttk.TTkK.ColorType.Background)}" if (colorType&ttk.TTkK.ColorType.Background) else None
if (pc:=(fg,bg)) not in palette: if (pc:=(fg,bg)) not in palette:
palette.append(pc) palette.append(pc)
@ -296,8 +297,9 @@ class CanvasLayer():
for row in colors[hslice]: for row in colors[hslice]:
outData['colors'].append([]) outData['colors'].append([])
for c in row[wslice]: for c in row[wslice]:
fg = f"{c.getHex(ttk.TTkK.Foreground)}" if c.foreground() else None colorType = c.colorType()
bg = f"{c.getHex(ttk.TTkK.Background)}" if c.background() else None fg = f"{c.getHex(ttk.TTkK.ColorType.Foreground)}" if (colorType&ttk.TTkK.ColorType.Foreground) else None
bg = f"{c.getHex(ttk.TTkK.ColorType.Background)}" if (colorType&ttk.TTkK.ColorType.Background) else None
if palette: if palette:
outData['colors'][-1].append(palette.index((fg,bg))) outData['colors'][-1].append(palette.index((fg,bg)))
else: else:
@ -493,18 +495,15 @@ class CanvasLayer():
colors[oy+y][ox+x] = color colors[oy+y][ox+x] = color
else: else:
glyph = data[ oy+y][ox+x] glyph = data[ oy+y][ox+x]
ofg = colors[oy+y][ox+x].foreground() oColorType = (oc:=colors[oy+y][ox+x]).colorType()
obg = colors[oy+y][ox+x].background() nColorType = (nc:=color).colorType()
nfg = color.foreground()
nbg = color.background()
if glyph==' ': if glyph==' ':
if obg: if oColorType & ttk.TTkK.ColorType.Background:
colors[oy+y][ox+x] = nbg if nbg else ttk.TTkColor.RST colors[oy+y][ox+x] = nc.background()
else: else:
fg = nfg if nfg else ofg if ofg else ttk.TTkColor.RST fg = nc.foreground() if ttk.TTkK.ColorType.Foreground & nColorType else oc.foreground()
bg = nbg if nbg and obg else obg if obg else fg bg = nc.background() if ttk.TTkK.ColorType.Background & nColorType & oColorType else oc.background() if ttk.TTkK.ColorType.Background & oColorType else fg
color = fg+bg color = fg+bg
color = color if color else ttk.TTkColor.RST
colors[oy+y][ox+x] = color colors[oy+y][ox+x] = color
return True return True
return False return False

12
tools/dumbPaintTool/app/importimage.py

@ -323,21 +323,19 @@ class TTkImageNew(ttk.TTkWidget):
s = (0,0,w,h) s = (0,0,w,h)
for y,(rowd,rowc) in enumerate(zip(self._canvasImage._data[:h],self._canvasImage._colors[:h])): for y,(rowd,rowc) in enumerate(zip(self._canvasImage._data[:h],self._canvasImage._colors[:h])):
for x,(gl,c) in enumerate(zip(rowd[:w],rowc[:w])): for x,(gl,c) in enumerate(zip(rowd[:w],rowc[:w])):
nfg = c.foreground() nColorType = c.colorType()
nbg = c.background() if gl == ' ' and not (nColorType & ttk.TTkK.ColorType.Background):
if gl == ' ' and not nbg:
continue continue
elif gl == ' ': elif gl == ' ':
canvas._data[ y][x] = ' ' canvas._data[ y][x] = ' '
canvas._colors[y][x] = nbg canvas._colors[y][x] = c.background()
elif not nbg: elif not (nColorType & ttk.TTkK.ColorType.Background):
nbg = canvas._colors[y][x].background() nbg = canvas._colors[y][x].background()
canvas._data[ y][x] = gl canvas._data[ y][x] = gl
canvas._colors[y][x] = nbg + nfg if nbg else nfg canvas._colors[y][x] = c.foreground() + nbg
else: else:
canvas._data[ y][x] = gl canvas._data[ y][x] = gl
canvas._colors[y][x] = c canvas._colors[y][x] = c
# canvas.paintCanvas(self._canvasImage,s,s,s)
class ImagePreview(TTkImageNew): class ImagePreview(TTkImageNew):
__slots__ = ('_trColor1','_trColor2') __slots__ = ('_trColor1','_trColor2')

12
tools/dumbPaintTool/app/paintarea.py

@ -200,25 +200,25 @@ class PaintArea(ttk.TTkAbstractScrollView):
if self._tool & ToolType.PICKGLYPH: if self._tool & ToolType.PICKGLYPH:
if mp: if mp:
mpx,mpy = mp mpx,mpy = mp
color = None color = ttk.TTkColor.RST
glyph = None glyph = None
for lm in glbls.layers.layers(): for lm in glbls.layers.layers():
lmx,lmy = lm.pos() lmx,lmy = lm.pos()
if lm.isOpaque(mpx-lmx-dx,mpy-lmy-dy): if lm.isOpaque(mpx-lmx-dx,mpy-lmy-dy):
_gl, _co = lm.glyphColorAt(mpx-lmx-dx,mpy-lmy-dy) _gl, _co = lm.glyphColorAt(mpx-lmx-dx,mpy-lmy-dy)
if not glyph and not color: if not glyph and color == ttk.TTkColor.RST:
glyph = _gl glyph = _gl
color = _co color = _co
elif not color.background(): elif color.background() == ttk.TTkColor.RST:
if _co.background(): if _co.background() != ttk.TTkColor.RST:
if _fg:=color.foreground(): if (_fg:=color.foreground()) != ttk.TTkColor.RST:
color = _fg + _co.background() color = _fg + _co.background()
else: else:
color = _co.background() color = _co.background()
else: else:
break break
glbls.brush.setColor(color) glbls.brush.setColor(color)
glbls.brush.setGlyph(glyph) glbls.brush.setGlyph(glyph if glyph else ' ')
if mr: if mr:
glbls.brush.setToolType(self._tool & ~ToolType.PICKGLYPH) glbls.brush.setToolType(self._tool & ~ToolType.PICKGLYPH)
self._mousePress = None self._mousePress = None

8
tools/dumbPaintTool/app/painttoolkit.py

@ -143,18 +143,18 @@ class PaintToolKit(ttk.TTkContainer):
@ttk.pyTTkSlot(ttk.TTkColor) @ttk.pyTTkSlot(ttk.TTkColor)
def setColor(self, color:ttk.TTkColor): def setColor(self, color:ttk.TTkColor):
if fg := color.foreground(): if ttk.TTkK.ColorType.Foreground & (colorType := color.colorType()):
self._cbFg.setCheckState(ttk.TTkK.Checked) self._cbFg.setCheckState(ttk.TTkK.Checked)
self._bpFg.setEnabled() self._bpFg.setEnabled()
self._bpFg.setColor(fg) self._bpFg.setColor(color.foreground())
else: else:
self._cbFg.setCheckState(ttk.TTkK.Unchecked) self._cbFg.setCheckState(ttk.TTkK.Unchecked)
self._bpFg.setDisabled() self._bpFg.setDisabled()
if bg := color.background(): if ttk.TTkK.ColorType.Background & colorType:
self._cbBg.setCheckState(ttk.TTkK.Checked) self._cbBg.setCheckState(ttk.TTkK.Checked)
self._bpBg.setEnabled() self._bpBg.setEnabled()
self._bpBg.setColor(bg) self._bpBg.setColor(color.background())
else: else:
self._cbBg.setCheckState(ttk.TTkK.Unchecked) self._cbBg.setCheckState(ttk.TTkK.Unchecked)
self._bpBg.setDisabled() self._bpBg.setDisabled()

8
tools/dumbPaintTool/app/palette.py

@ -84,8 +84,8 @@ class Palette(ttk.TTkWidget):
def setColor(self, color:ttk.TTkColor) -> None: def setColor(self, color:ttk.TTkColor) -> None:
fg = color.foreground() fg = color.foreground()
bg = color.background() bg = color.background()
self.enableFg(fg!=None) self.enableFg(fg!=ttk.TTkColor.RST)
self.enableBg(bg!=None) self.enableBg(bg!=ttk.TTkColor.RST)
def _getPos(col): def _getPos(col):
for y,row in enumerate(self._palette): for y,row in enumerate(self._palette):
for x,c in enumerate(row): for x,c in enumerate(row):
@ -93,14 +93,14 @@ class Palette(ttk.TTkWidget):
return x,y return x,y
return None return None
pw, ph = len(self._palette[0]),len(self._palette) pw, ph = len(self._palette[0]),len(self._palette)
if fg: if fg!=ttk.TTkColor.RST:
if (pos:=_getPos(fg)) != None: if (pos:=_getPos(fg)) != None:
self._fg = pos self._fg = pos
else: else:
self._fg = (pw-2,ph-1) self._fg = (pw-2,ph-1)
self._palette[ph-1][pw-2] = (fg,fg.invertFgBg()) self._palette[ph-1][pw-2] = (fg,fg.invertFgBg())
if bg: if bg!=ttk.TTkColor.RST:
if (pos:=_getPos(bg)) != None: if (pos:=_getPos(bg)) != None:
self._bg = pos self._bg = pos
else: else:

10
tools/dumbPaintTool/app/textarea.py

@ -133,19 +133,19 @@ class TextArea(ttk.TTkGridLayout):
btn_redo.clicked.connect(self._te.redo) btn_redo.clicked.connect(self._te.redo)
@ttk.pyTTkSlot(ttk.TTkColor) @ttk.pyTTkSlot(ttk.TTkColor)
def _currentColorChangedCB(format): def _currentColorChangedCB(format:ttk.TTkColor):
if fg := format.foreground(): if ttk.TTkK.ColorType.Foreground & (colorType := format.colorType()):
cb_fg.setCheckState(ttk.TTkK.Checked) cb_fg.setCheckState(ttk.TTkK.Checked)
btn_fgColor.setEnabled() btn_fgColor.setEnabled()
btn_fgColor.setColor(fg) btn_fgColor.setColor(format.foreground())
else: else:
cb_fg.setCheckState(ttk.TTkK.Unchecked) cb_fg.setCheckState(ttk.TTkK.Unchecked)
btn_fgColor.setDisabled() btn_fgColor.setDisabled()
if bg := format.background(): if ttk.TTkK.ColorType.Background & colorType:
cb_bg.setCheckState(ttk.TTkK.Checked) cb_bg.setCheckState(ttk.TTkK.Checked)
btn_bgColor.setEnabled() btn_bgColor.setEnabled()
btn_bgColor.setColor(bg) btn_bgColor.setColor(format.background())
else: else:
cb_bg.setCheckState(ttk.TTkK.Unchecked) cb_bg.setCheckState(ttk.TTkK.Unchecked)
btn_bgColor.setDisabled() btn_bgColor.setDisabled()

4
tools/dumbPaintTool/app/toolspanel.py

@ -212,8 +212,8 @@ class ToolsPanel(ttk.TTkVBoxLayout):
ttk.TTkString("Glyph: '") + ttk.TTkString("Glyph: '") +
ttk.TTkString(glyph,color) + ttk.TTkString(glyph,color) +
ttk.TTkString("'")) ttk.TTkString("'"))
self._cb_p_fg.setChecked(None != color.foreground()) self._cb_p_fg.setChecked(ttk.TTkColor.RST != color.foreground())
self._cb_p_bg.setChecked(None != color.background()) self._cb_p_bg.setChecked(ttk.TTkColor.RST != color.background())
@ttk.pyTTkSlot(ttk.TTkColor) @ttk.pyTTkSlot(ttk.TTkColor)
def setColor(self, color:ttk.TTkColor): def setColor(self, color:ttk.TTkColor):

10
tools/ttkDesigner/app/notepad.py

@ -81,19 +81,19 @@ class NotePad(ttk.TTkGridLayout):
fontLayout.addWidget(SuperSimpleHorizontalLine(),0,12,2,1) fontLayout.addWidget(SuperSimpleHorizontalLine(),0,12,2,1)
@ttk.pyTTkSlot(ttk.TTkColor) @ttk.pyTTkSlot(ttk.TTkColor)
def _currentColorChangedCB(format): def _currentColorChangedCB(format:ttk.TTkColor):
if fg := format.foreground(): if ttk.TTkK.ColorType.Foreground & (colorType := format.colorType()):
cb_fg.setCheckState(ttk.TTkK.Checked) cb_fg.setCheckState(ttk.TTkK.Checked)
btn_fgColor.setEnabled() btn_fgColor.setEnabled()
btn_fgColor.setColor(fg) btn_fgColor.setColor(format.foreground())
else: else:
cb_fg.setCheckState(ttk.TTkK.Unchecked) cb_fg.setCheckState(ttk.TTkK.Unchecked)
btn_fgColor.setDisabled() btn_fgColor.setDisabled()
if bg := format.background(): if ttk.TTkK.ColorType.Background & colorType:
cb_bg.setCheckState(ttk.TTkK.Checked) cb_bg.setCheckState(ttk.TTkK.Checked)
btn_bgColor.setEnabled() btn_bgColor.setEnabled()
btn_bgColor.setColor(bg) btn_bgColor.setColor(format.background())
else: else:
cb_bg.setCheckState(ttk.TTkK.Unchecked) cb_bg.setCheckState(ttk.TTkK.Unchecked)
btn_bgColor.setDisabled() btn_bgColor.setDisabled()

Loading…
Cancel
Save