Browse Source

Moved the colorpicker constants in TTkK

pull/289/head
Eugenio Parodi 1 year ago
parent
commit
85cfe8c0fc
  1. 16
      TermTk/TTkCore/constant.py
  2. 19
      TermTk/TTkUiTools/properties/colorpicker.py
  3. 39
      TermTk/TTkWidgets/TTkPickers/colorpicker.py
  4. 4
      TermTk/TTkWidgets/TTkPickers/textpicker.py
  5. 22
      demo/showcase/colorpicker.py
  6. 4
      demo/showcase/textedit.py
  7. 8
      tools/dumbPaintTool/app/textarea.py
  8. 8
      tools/ttkDesigner/app/notepad.py

16
TermTk/TTkCore/constant.py

@ -146,6 +146,22 @@ class TTkConstant:
ScrollBarAlwaysOff = ScrollBarPolicy.ScrollBarAlwaysOff
ScrollBarAlwaysOn = ScrollBarPolicy.ScrollBarAlwaysOn
class ColorPickerReturnType(int):
'''
This class identify the return color type used in :py:class:`TTkColorDialogPicker` or :py:class:`TTkColorButtonPicker`
.. autosummary::
Default
Foreground
Background
'''
Default=0x00
'''The color type returned (fg or bg) is compliant of the type used in the initialization or 'Foreground' in case is missing or :py:class:`TTKColor.RST`'''
Foreground=0x01
'''The color type returned is Foreground'''
Background=0x02
'''The color type returned is Background'''
class CheckState(int):
''' This class type is used to describe the check status.

19
TermTk/TTkUiTools/properties/colorpicker.py

@ -22,6 +22,7 @@
__all__ = ['TTkColorButtonPickerProperties']
from TermTk.TTkCore.constant import TTkK
from TermTk.TTkCore.color import TTkColor
from TermTk.TTkWidgets.TTkPickers.colorpicker import TTkColorButtonPicker,TTkColorDialogPicker
@ -34,19 +35,19 @@ TTkColorButtonPickerProperties = {
'Return Type' : {
'init': {'name':'returnType', 'type':'singleflag',
'flags': {
'Default' : TTkColorDialogPicker.ColorReturnType.Default ,
'Foreground' : TTkColorDialogPicker.ColorReturnType.Foreground ,
'Background' : TTkColorDialogPicker.ColorReturnType.Background } },
'Default' : TTkK.ColorPickerReturnType.Default ,
'Foreground' : TTkK.ColorPickerReturnType.Foreground ,
'Background' : TTkK.ColorPickerReturnType.Background } },
'get': {'cb':TTkColorButtonPicker.returnType, 'type':'singleflag',
'flags': {
'Default' : TTkColorDialogPicker.ColorReturnType.Default ,
'Foreground' : TTkColorDialogPicker.ColorReturnType.Foreground ,
'Background' : TTkColorDialogPicker.ColorReturnType.Background } } ,
'Default' : TTkK.ColorPickerReturnType.Default ,
'Foreground' : TTkK.ColorPickerReturnType.Foreground ,
'Background' : TTkK.ColorPickerReturnType.Background } } ,
'set': {'cb':TTkColorButtonPicker.setReturnType, 'type':'singleflag',
'flags': {
'Default' : TTkColorDialogPicker.ColorReturnType.Default ,
'Foreground' : TTkColorDialogPicker.ColorReturnType.Foreground ,
'Background' : TTkColorDialogPicker.ColorReturnType.Background } } } },
'Default' : TTkK.ColorPickerReturnType.Default ,
'Foreground' : TTkK.ColorPickerReturnType.Foreground ,
'Background' : TTkK.ColorPickerReturnType.Background } } } },
'signals' : {
'colorSelected(TTkColor)' : {'name': 'colorSelected', 'type' : TTkColor},
'colorSelectedFG(TTkColor)' : {'name': 'colorSelectedFG', 'type' : TTkColor},

39
TermTk/TTkWidgets/TTkPickers/colorpicker.py

@ -188,7 +188,7 @@ class _TTkColorButton(TTkButton):
__slots__ = ('colorClicked','_custom','_color','_returnType')
def __init__(self, *,
color:TTkColor=TTkColor.RST,
returnType=0x00,
returnType:TTkK.ColorPickerReturnType=TTkK.ColorPickerReturnType.Default,
custom:bool=False,
**kwargs) -> None:
# Signals
@ -216,12 +216,18 @@ class _TTkColorButton(TTkButton):
self.setStyle(style)
self.update()
def returnType(self) -> TTkK.ColorPickerReturnType:
return self._returnType
def setReturnType(self, returnType:TTkK.ColorPickerReturnType) -> None:
self._returnType = returnType
def color(self) -> TTkColor:
fg = self._color.foreground()
bg = self._color.background()
if self._returnType==TTkColorDialogPicker.ColorReturnType.Foreground:
if self._returnType==TTkK.ColorPickerReturnType.Foreground:
return fg if fg else bg.invertFgBg() if bg else TTkColor.RST
if self._returnType==TTkColorDialogPicker.ColorReturnType.Background:
if self._returnType==TTkK.ColorPickerReturnType.Background:
return bg if bg else fg.invertFgBg() if fg else TTkColor.RST
return self._color
@ -314,17 +320,6 @@ class TTkColorDialogPicker(TTkWindow):
# │└──────────────────────┘└──────────────────────┘│
# └────────────────────────────────────────────────┘
class ColorReturnType(int):
'''
This class identify the return color type
'''
Default=0x00
'''The color type returned (fg or bg) is compliant of the type used in the initialization or 'Foreground' in case is missing or :py:class:`TTKColor.RST`'''
Foreground=0x01
'''The color type returned is Foreground'''
Background=0x02
'''The color type returned is Background'''
classStyle = {
'default': {'color': TTkColor.RST,
'borderColor': TTkColor.RST,
@ -356,13 +351,13 @@ class TTkColorDialogPicker(TTkWindow):
)
def __init__(self, *,
color:TTkColor=TTkColor.RST,
returnType:ColorReturnType=ColorReturnType.Default,
returnType:TTkK.ColorPickerReturnType=TTkK.ColorPickerReturnType.Default,
**kwargs) -> None:
'''
:param color: the current color
:type color: :py:class:`TTkColor`
:param returnType: the type of the returuning color
:type returnType: :py:class:`TTkColorDialogPicker.ColorReturnType`
:type returnType: :py:class:`TTkK.ColorPickerReturnType`
'''
# Signals
self.colorSelected = pyTTkSignal(TTkColor)
@ -556,9 +551,9 @@ class TTkColorDialogPicker(TTkWindow):
'''
fg = self._color.foreground()
bg = self._color.background()
if self._returnType==TTkColorDialogPicker.ColorReturnType.Foreground:
if self._returnType==TTkK.ColorPickerReturnType.Foreground:
return fg if fg else bg.invertFgBg() if bg else TTkColor.RST
if self._returnType==TTkColorDialogPicker.ColorReturnType.Background:
if self._returnType==TTkK.ColorPickerReturnType.Background:
return bg if bg else fg.invertFgBg() if fg else TTkColor.RST
return self._color
@ -649,7 +644,7 @@ class TTkColorButtonPicker(_TTkColorButton):
:param color: the current color
:type color: :py:class:`TTkColor`
:param returnType: the type of the returuning color
:type returnType: :py:class:`TTkColorDialogPicker.ColorReturnType`
:type returnType: :py:class:`TTkK.ColorPickerReturnType`
'''
# Signals
self.colorSelected = pyTTkSignal(TTkColor)
@ -659,12 +654,6 @@ class TTkColorButtonPicker(_TTkColorButton):
self._custom = False
self.clicked.connect(self._colorClicked)
def returnType(self) -> TTkColorDialogPicker.ColorReturnType:
return self._returnType
def setReturnType(self, returnType:TTkColorDialogPicker.ColorReturnType) -> None:
self._returnType = returnType
@pyTTkSlot()
def _colorClicked(self):
colorPicker = TTkColorDialogPicker(pos = (3,3), size=(75,24), color=self.color(), title="Test Color Picker", border=True)

4
TermTk/TTkWidgets/TTkPickers/textpicker.py

@ -141,10 +141,10 @@ class TTkTextDialogPicker(TTkWindow):
fontLayout = TTkGridLayout(columnMinWidth=1)
# Char Fg/Bg buttons
fontLayout.addWidget(cb_fg := TTkCheckbox(text=" FG"),0,0)
fontLayout.addWidget(btn_fgColor := TTkColorButtonPicker(border=True, enabled=False, maxSize=(7,3), minSize=(7,3), returnType=TTkColorDialogPicker.ColorReturnType.Foreground),1,0)
fontLayout.addWidget(btn_fgColor := TTkColorButtonPicker(border=True, enabled=False, maxSize=(7,3), minSize=(7,3), returnType=TTkK.ColorPickerReturnType.Foreground),1,0)
fontLayout.addWidget(cb_bg := TTkCheckbox(text=" BG"),0,2)
fontLayout.addWidget(btn_bgColor := TTkColorButtonPicker(border=True, enabled=False, maxSize=(7,3), minSize=(7,3), returnType=TTkColorDialogPicker.ColorReturnType.Background),1,2)
fontLayout.addWidget(btn_bgColor := TTkColorButtonPicker(border=True, enabled=False, maxSize=(7,3), minSize=(7,3), returnType=TTkK.ColorPickerReturnType.Background),1,2)
# Char style buttons
fontLayout.addWidget(btn_bold := TTkButton(border=True, maxSize=(5,3), minSize=(5,3), checkable=True, text=TTkString( 'a' , TTkColor.BOLD) ),1,4)

22
demo/showcase/colorpicker.py

@ -39,19 +39,19 @@ def demoColorPicker(root=None):
ttk.TTkLabel(parent=winCP, pos=( 1,0), text="BG")
ttk.TTkLabel(parent=winCP, pos=(11,0), text="FG")
cbp01 = ttk.TTkColorButtonPicker(parent=winCP, pos=( 0, 1), size=(8,3), border=True, color=ttk.TTkColor.bg('#88ffff') )
cbp02 = ttk.TTkColorButtonPicker(parent=winCP, pos=( 0, 4), size=(8,3), border=True, color=ttk.TTkColor.bg('#ff88ff') ,returnType=ttk.TTkColorDialogPicker.ColorReturnType.Default)
cbp03 = ttk.TTkColorButtonPicker(parent=winCP, pos=( 0, 7), size=(8,3), border=True, color=ttk.TTkColor.fg('#ffff88') ,returnType=ttk.TTkColorDialogPicker.ColorReturnType.Background)
cbp04 = ttk.TTkColorButtonPicker(parent=winCP, pos=( 0,10), size=(8,3), border=True, color=ttk.TTkColor.bg('#8888ff') ,returnType=ttk.TTkColorDialogPicker.ColorReturnType.Background)
cbp02 = ttk.TTkColorButtonPicker(parent=winCP, pos=( 0, 4), size=(8,3), border=True, color=ttk.TTkColor.bg('#ff88ff') ,returnType=ttk.TTkK.ColorPickerReturnType.Default)
cbp03 = ttk.TTkColorButtonPicker(parent=winCP, pos=( 0, 7), size=(8,3), border=True, color=ttk.TTkColor.fg('#ffff88') ,returnType=ttk.TTkK.ColorPickerReturnType.Background)
cbp04 = ttk.TTkColorButtonPicker(parent=winCP, pos=( 0,10), size=(8,3), border=True, color=ttk.TTkColor.bg('#8888ff') ,returnType=ttk.TTkK.ColorPickerReturnType.Background)
cbp05 = ttk.TTkColorButtonPicker(parent=winCP, pos=(10, 1), size=(8,3), border=True, color=ttk.TTkColor.fg('#00ffff') )
cbp06 = ttk.TTkColorButtonPicker(parent=winCP, pos=(10, 4), size=(8,3), border=True, color=ttk.TTkColor.fg('#ff00ff') ,returnType=ttk.TTkColorDialogPicker.ColorReturnType.Default)
cbp07 = ttk.TTkColorButtonPicker(parent=winCP, pos=(10, 7), size=(8,3), border=True, color=ttk.TTkColor.fg('#ffff00') ,returnType=ttk.TTkColorDialogPicker.ColorReturnType.Foreground)
cbp08 = ttk.TTkColorButtonPicker(parent=winCP, pos=(10,10), size=(8,3), border=True, color=ttk.TTkColor.bg('#0000ff') ,returnType=ttk.TTkColorDialogPicker.ColorReturnType.Foreground)
cbp09 = ttk.TTkColorButtonPicker(parent=winCP, pos=(20, 1), size=(8,3), border=True, color=ttk.TTkColor.fg('#ffffff') ,returnType=ttk.TTkColorDialogPicker.ColorReturnType.Foreground)
cbp10 = ttk.TTkColorButtonPicker(parent=winCP, pos=(20, 4), size=(8,3), border=True, color=ttk.TTkColor.bg('#ffffff') ,returnType=ttk.TTkColorDialogPicker.ColorReturnType.Foreground)
cbp11 = ttk.TTkColorButtonPicker(parent=winCP, pos=(20, 7), size=(8,3), border=True, color=ttk.TTkColor.fg('#ffffff') ,returnType=ttk.TTkColorDialogPicker.ColorReturnType.Background)
cbp12 = ttk.TTkColorButtonPicker(parent=winCP, pos=(20,10), size=(8,3), border=True, color=ttk.TTkColor.bg('#ffffff') ,returnType=ttk.TTkColorDialogPicker.ColorReturnType.Background)
cbp06 = ttk.TTkColorButtonPicker(parent=winCP, pos=(10, 4), size=(8,3), border=True, color=ttk.TTkColor.fg('#ff00ff') ,returnType=ttk.TTkK.ColorPickerReturnType.Default)
cbp07 = ttk.TTkColorButtonPicker(parent=winCP, pos=(10, 7), size=(8,3), border=True, color=ttk.TTkColor.fg('#ffff00') ,returnType=ttk.TTkK.ColorPickerReturnType.Foreground)
cbp08 = ttk.TTkColorButtonPicker(parent=winCP, pos=(10,10), size=(8,3), border=True, color=ttk.TTkColor.bg('#0000ff') ,returnType=ttk.TTkK.ColorPickerReturnType.Foreground)
cbp09 = ttk.TTkColorButtonPicker(parent=winCP, pos=(20, 1), size=(8,3), border=True, color=ttk.TTkColor.fg('#ffffff') ,returnType=ttk.TTkK.ColorPickerReturnType.Foreground)
cbp10 = ttk.TTkColorButtonPicker(parent=winCP, pos=(20, 4), size=(8,3), border=True, color=ttk.TTkColor.bg('#ffffff') ,returnType=ttk.TTkK.ColorPickerReturnType.Foreground)
cbp11 = ttk.TTkColorButtonPicker(parent=winCP, pos=(20, 7), size=(8,3), border=True, color=ttk.TTkColor.fg('#ffffff') ,returnType=ttk.TTkK.ColorPickerReturnType.Background)
cbp12 = ttk.TTkColorButtonPicker(parent=winCP, pos=(20,10), size=(8,3), border=True, color=ttk.TTkColor.bg('#ffffff') ,returnType=ttk.TTkK.ColorPickerReturnType.Background)
def _register(cbp:ttk.TTkColorButtonPicker):
cbp.colorSelected.connect(lcol.setColor)

4
demo/showcase/textedit.py

@ -130,10 +130,10 @@ def demoTextEdit(root=None, document=None):
# Char Fg/Bg buttons
fontLayout.addWidget(cb_fg := ttk.TTkCheckbox(text=" FG"),0,0)
fontLayout.addWidget(btn_fgColor := ttk.TTkColorButtonPicker(border=True, enabled=False, maxSize=(7,3), returnType=ttk.TTkColorDialogPicker.ColorReturnType.Foreground),1,0)
fontLayout.addWidget(btn_fgColor := ttk.TTkColorButtonPicker(border=True, enabled=False, maxSize=(7,3), returnType=ttk.TTkK.ColorPickerReturnType.Foreground),1,0)
fontLayout.addWidget(cb_bg := ttk.TTkCheckbox(text=" BG"),0,2)
fontLayout.addWidget(btn_bgColor := ttk.TTkColorButtonPicker(border=True, enabled=False, maxSize=(7,3), returnType=ttk.TTkColorDialogPicker.ColorReturnType.Background),1,2)
fontLayout.addWidget(btn_bgColor := ttk.TTkColorButtonPicker(border=True, enabled=False, maxSize=(7,3), returnType=ttk.TTkK.ColorPickerReturnType.Background),1,2)
fontLayout.addWidget(cb_linenumber := ttk.TTkCheckbox(text=" LineNumber", checked=True),0,4,1,3)
fontLayout.addWidget(sb_linenumber := ttk.TTkSpinBox(value=1, maxWidth=5, maximum=10000, minimum=-10000, enabled=True),0,7,1,1)

8
tools/dumbPaintTool/app/textarea.py

@ -116,10 +116,10 @@ class TextArea(ttk.TTkGridLayout):
# Char Fg/Bg buttons
fontLayout.addWidget(cb_fg := ttk.TTkCheckbox(text=" FG"),0,0)
fontLayout.addWidget(btn_fgColor := ttk.TTkColorButtonPicker(border=True, enabled=False, maxSize=(7,3), returnType=ttk.TTkColorDialogPicker.ColorReturnType.Foreground),1,0)
fontLayout.addWidget(btn_fgColor := ttk.TTkColorButtonPicker(border=True, enabled=False, maxSize=(7,3), returnType=ttk.TTkK.ColorPickerReturnType.Foreground),1,0)
fontLayout.addWidget(cb_bg := ttk.TTkCheckbox(text=" BG"),0,2)
fontLayout.addWidget(btn_bgColor := ttk.TTkColorButtonPicker(border=True, enabled=False, maxSize=(7,3), returnType=ttk.TTkColorDialogPicker.ColorReturnType.Background),1,2)
fontLayout.addWidget(btn_bgColor := ttk.TTkColorButtonPicker(border=True, enabled=False, maxSize=(7,3), returnType=ttk.TTkK.ColorPickerReturnType.Background),1,2)
fontLayout.addWidget(cb_linenumber := ttk.TTkCheckbox(text=" LineNumber", checked=True),0,4,1,3)
@ -137,7 +137,7 @@ class TextArea(ttk.TTkGridLayout):
if fg := format.foreground():
cb_fg.setCheckState(ttk.TTkK.Checked)
btn_fgColor.setEnabled()
btn_fgColor.setColor(fg.invertFgBg())
btn_fgColor.setColor(fg)
else:
cb_fg.setCheckState(ttk.TTkK.Unchecked)
btn_fgColor.setDisabled()
@ -155,7 +155,7 @@ class TextArea(ttk.TTkGridLayout):
def _setStyle():
color = ttk.TTkColor()
if cb_fg.checkState() == ttk.TTkK.Checked:
color += btn_fgColor.color().invertFgBg()
color += btn_fgColor.color()
if cb_bg.checkState() == ttk.TTkK.Checked:
color += btn_bgColor.color()
cursor = self._te.textCursor()

8
tools/ttkDesigner/app/notepad.py

@ -55,10 +55,10 @@ class NotePad(ttk.TTkGridLayout):
# Char Fg/Bg buttons
fontLayout.addWidget(cb_fg := ttk.TTkCheckbox(text=" FG"),0,0)
fontLayout.addWidget(btn_fgColor := ttk.TTkColorButtonPicker(border=True, enabled=False, maxSize=(7,3), returnType=ttk.TTkColorDialogPicker.ColorReturnType.Foreground),1,0)
fontLayout.addWidget(btn_fgColor := ttk.TTkColorButtonPicker(border=True, enabled=False, maxSize=(7,3), returnType=ttk.TTkK.ColorPickerReturnType.Foreground),1,0)
fontLayout.addWidget(cb_bg := ttk.TTkCheckbox(text=" BG"),0,2)
fontLayout.addWidget(btn_bgColor := ttk.TTkColorButtonPicker(border=True, enabled=False, maxSize=(7,3), returnType=ttk.TTkColorDialogPicker.ColorReturnType.Background),1,2)
fontLayout.addWidget(btn_bgColor := ttk.TTkColorButtonPicker(border=True, enabled=False, maxSize=(7,3), returnType=ttk.TTkK.ColorPickerReturnType.Background),1,2)
fontLayout.addWidget(cb_linenumber := ttk.TTkCheckbox(text=" LineNumber", checked=True),0,4,1,3)
@ -85,7 +85,7 @@ class NotePad(ttk.TTkGridLayout):
if fg := format.foreground():
cb_fg.setCheckState(ttk.TTkK.Checked)
btn_fgColor.setEnabled()
btn_fgColor.setColor(fg.invertFgBg())
btn_fgColor.setColor(fg)
else:
cb_fg.setCheckState(ttk.TTkK.Unchecked)
btn_fgColor.setDisabled()
@ -109,7 +109,7 @@ class NotePad(ttk.TTkGridLayout):
def _setStyle():
color = ttk.TTkColor()
if cb_fg.checkState() == ttk.TTkK.Checked:
color += btn_fgColor.color().invertFgBg()
color += btn_fgColor.color()
if cb_bg.checkState() == ttk.TTkK.Checked:
color += btn_bgColor.color()
if btn_bold.isChecked():

Loading…
Cancel
Save