diff --git a/Makefile b/Makefile index 8eddc1fc..010f9d60 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,9 @@ doc: .venv make -C docs/ html ; \ cp -a docs/images docs/build/html/_images ; +testDoc: + python3 -m http.server --directory docs/build/html/ + runGittk: .venv . .venv/bin/activate ; \ demo/gittk.py -f diff --git a/TermTk/TTkCore/color.py b/TermTk/TTkCore/color.py index c5f1dc21..60754998 100644 --- a/TermTk/TTkCore/color.py +++ b/TermTk/TTkCore/color.py @@ -212,13 +212,47 @@ class TTkColorGradient(_TTkColorModifier): class TTkColor(_TTkColor): + ''' TermTk Color helper + + .. role:: strike + :class: strike + + .. role:: underline + :class: underline + + The TTkColor constructor creates the color based on HEX values. + + Example: + + .. code:: python + + # Foreground only colors: + color_fg_red = TTkColor.fg('#FF0000') + color_fg_green = TTkColor.fg('#00FF00') + color_fg_blue = TTkColor.fg('#0000FF') + + # Background only colors: + color_bg_red = TTkColor.bg('#FF0000') + color_bg_green = TTkColor.bg('#00FF00') + color_bg_blue = TTkColor.bg('#0000FF') + + # Combine + color_1 = color_fg_red + color_bg_blue + color_2 = color_fg_red + TTkColor.bg('#FFFF00') + color_3 = color_2 + TTkColor.UNDERLINE + TTkColor.BOLD + ''' RST = _TTkColor(fg='\033[0m') + '''Default terminal color''' # Modifiers: BOLD = _TTkColor(mod='\033[1m') + '''**Bold** modifier''' ITALIC = _TTkColor(mod='\033[3m') + '''*Italic* modifier''' UNDERLINE = _TTkColor(mod='\033[4m') + ''':underline:`Underline` modifier''' STRIKETROUGH = _TTkColor(mod='\033[9m') + ''':strike:`Striketrough` modifier''' @staticmethod def fg(*args, **kwargs): diff --git a/TermTk/TTkGui/theme.py b/TermTk/TTkGui/theme.py index a972033b..ac2ae07c 100644 --- a/TermTk/TTkGui/theme.py +++ b/TermTk/TTkGui/theme.py @@ -33,6 +33,9 @@ import TermTk.TTkGui.draw_ascii as draw_ascii class TTkTheme(): + '''Default Theme Class + This class can be reimplemented/extended to include new themes and default colors + ''' NERD = {'file':fi_nerd, 'draw':draw_utf8} UTF8 = {'file':fi_utf8, 'draw':draw_utf8} ASCII = {'file':fi_ascii, 'draw':draw_ascii} @@ -50,12 +53,19 @@ class TTkTheme(): braille = draw_utf8.TTkTheme.braille fileNameColor = TTkColor.RST # Simil NerdTree purple + '''Default to **TTkColor.RST # Simil NerdTree purple**''' executableColor = TTkColor.fg("#AAFFAA") # Greenish + '''Default to **TTkColor.fg("#AAFFAA") # Greenish**''' linkNameColor = TTkColor.fg("#00FFFF") # Cyanish + '''Default to **TTkColor.fg("#00FFFF") # Cyanish**''' folderNameColor = TTkColor.fg("#AAFFFF") # Yellowish + '''Default to **TTkColor.fg("#AAFFFF") # Yellowish**''' failNameColor = TTkColor.fg("#FF0000") # Yellowish + '''Default to **TTkColor.fg("#FF0000") # Yellowish**''' fileIconColor = TTkColor.fg("#FFAAFF") # Simil NerdTree purple + '''Default to **TTkColor.fg("#FFAAFF") # Simil NerdTree purple**''' folderIconColor = TTkColor.fg("#FFFFAA") # Yellowish + '''Default to **TTkColor.fg("#FFFFAA") # Yellowish**''' getIcon = fi_utf8.FileIcon.getIcon folderIconClose = TTkString() + folderIconColor + fi_utf8.FileIcon.folder_close + TTkColor.RST @@ -89,61 +99,108 @@ class TTkTheme(): frameBorderColor = TTkColor.RST + '''Default to :class:`~TermTk.TTkCore.color.TTkColor.RST`''' frameTitleColor = TTkColor.fg("#dddddd")+TTkColor.bg("#222222") + '''Default to **TTkColor.fg("#dddddd")+TTkColor.bg("#222222")**''' windowBorderColor = TTkColor.RST + '''Default to :class:`~TermTk.TTkCore.color.TTkColor.RST`''' windowBorderColorFocus = TTkColor.fg("#ffff55") + '''Default to **TTkColor.fg("#ffff55")**''' buttonBoxGrid = 1 + '''Default to **1**''' buttonBoxGridClicked = 0 + '''Default to **0**''' buttonBoxGridDisabled = 0 + '''Default to **0**''' buttonTextColor = TTkColor.fg("#dddd88")+TTkColor.bg("#000044") + '''Default to **TTkColor.fg("#dddd88")+TTkColor.bg("#000044")**''' buttonBorderColor = TTkColor.RST + '''Default to :class:`~TermTk.TTkCore.color.TTkColor.RST`''' buttonTextColorClicked = TTkColor.fg("#ffffdd")+TTkColor.BOLD + '''Default to **TTkColor.fg("#ffffdd")+**:class:`~TermTk.TTkCore.color.TTkColor.BOLD`''' buttonBorderColorClicked = TTkColor.fg("#dddddd")+TTkColor.BOLD - buttonTextColorFocus = buttonTextColor + TTkColor.BOLD + '''Default to **TTkColor.fg("#dddddd")+**:class:`~TermTk.TTkCore.color.TTkColor.BOLD`''' + buttonTextColorFocus = buttonTextColor + TTkColor.BOLD + '''Default to :class:`buttonTextColor` **+** :class:`~TermTk.TTkCore.color.TTkColor.BOLD`''' buttonBorderColorFocus = TTkColor.fg("#ffff00") + TTkColor.BOLD + '''Default to **TTkColor.fg("#ffff00") + **:class:`~TermTk.TTkCore.color.TTkColor.BOLD`''' buttonTextColorDisabled = TTkColor.fg("#888888") + '''Default to **TTkColor.fg("#888888")**''' buttonBorderColorDisabled= TTkColor.fg("#888888") + '''Default to **TTkColor.fg("#888888")**''' menuButtonShortcutColor = TTkColor.fg("#dddddd") + TTkColor.UNDERLINE + '''Default to **TTkColor.fg("#dddddd") + TTkColor.UNDERLINE**''' menuButtonColor = TTkColor.BOLD + '''Default to :class:`~TermTk.TTkCore.color.TTkColor.BOLD`''' menuButtonBorderColor = frameBorderColor - menuButtonColorClicked = TTkColor.fg("#ffff88") + '''Default to :class:`frameBorderColor`''' + menuButtonColorClicked = TTkColor.fg("#ffff88") + '''Default to **TTkColor.fg("#ffff88")**''' menuButtonBorderColorClicked = frameBorderColor + '''Default to :class:`frameBorderColor`''' listColor = TTkColor.RST + '''Default to :class:`~TermTk.TTkCore.color.TTkColor.RST`''' listColorSelected = TTkColor.fg("#ffffdd")+TTkColor.bg("#000044") + TTkColor.BOLD + '''Default to **TTkColor.fg("#ffffdd")+TTkColor.bg("#000044") + **:class:`~TermTk.TTkCore.color.TTkColor.BOLD`''' listColorHighlighted = TTkColor.bg("#000088") + TTkColor.BOLD + '''Default to **TTkColor.bg("#000088") + **:class:`~TermTk.TTkCore.color.TTkColor.BOLD`''' lineEditTextColor = TTkColor.fg("#dddddd")+TTkColor.bg("#222222") + '''Default to **TTkColor.fg("#dddddd")+TTkColor.bg("#222222")**''' lineEditTextColorFocus = TTkColor.fg("#dddddd")+TTkColor.bg("#000044") + '''Default to **TTkColor.fg("#dddddd")+TTkColor.bg("#000044")**''' comboboxContentColor = TTkColor.fg("#dddd88")+TTkColor.bg("#111111") + '''Default to **TTkColor.fg("#dddd88")+TTkColor.bg("#111111")**''' comboboxBorderColor = buttonBorderColor + '''Default to :class:`buttonBorderColor`''' comboboxContentColorFocus = TTkColor.fg("#ffff88")+TTkColor.bg("#111111") + '''Default to **TTkColor.fg("#ffff88")+TTkColor.bg("#111111")**''' comboboxBorderColorFocus = buttonBorderColorFocus checkboxContentColor = buttonTextColor + '''Default to :class:`buttonTextColor`''' checkboxBorderColor = buttonBorderColor + '''Default to :class:`buttonBorderColor`''' checkboxContentColorFocus = buttonTextColorFocus + '''Default to :class:`buttonTextColorFocus`''' checkboxBorderColorFocus = buttonBorderColorFocus + '''Default to :class:`buttonBorderColorFocus`''' radioButtonContentColor = buttonTextColor + '''Default to :class:`buttonTextColor`''' radioButtonBorderColor = buttonBorderColor + '''Default to :class:`buttonBorderColor`''' radioButtonContentColorFocus = buttonTextColorFocus + '''Default to :class:`buttonTextColorFocus`''' radioButtonBorderColorFocus = buttonBorderColorFocus + '''Default to :class:`buttonBorderColorFocus`''' tabColor = TTkColor.fg("#aaaaaa") + '''Default to **TTkColor.fg("#aaaaaa")**''' tabOffsetColor = TTkColor.RST + '''Default to **TTkColor.RST**''' tabBorderColor = frameBorderColor + '''Default to :class:`frameBorderColor`''' tabSelectColor = TTkColor.fg("#ffff88")+TTkColor.bg("#000066")+TTkColor.BOLD + '''Default to **TTkColor.fg("#ffff88")+TTkColor.bg("#000066")+**:class:`~TermTk.TTkCore.color.TTkColor.BOLD`''' tabColorFocus = TTkColor.fg("#aaaaaa") + '''Default to **TTkColor.fg("#aaaaaa")**''' tabOffsetColorFocus = tabOffsetColor + '''Default to :class:`tabOffsetColor`''' tabBorderColorFocus = TTkColor.fg("#ffff88") + '''Default to **TTkColor.fg("#ffff88")**''' tabSelectColorFocus = TTkColor.fg("#ffff88")+TTkColor.bg("#000066")+TTkColor.BOLD + '''Default to **TTkColor.fg("#ffff88")+TTkColor.bg("#000066")+**:class:`~TermTk.TTkCore.color.TTkColor.BOLD`''' treeHeaderColor = TTkColor.fg("#ffffff")+TTkColor.bg("#444444")+TTkColor.BOLD + '''Default to **TTkColor.fg("#ffffff")+TTkColor.bg("#444444")+**:class:`~TermTk.TTkCore.color.TTkColor.BOLD`''' treeSelectedColor = TTkColor.fg("#ffff88")+TTkColor.bg("#000066")+TTkColor.BOLD - treeLineColor = TTkColor.fg("#444444") \ No newline at end of file + '''Default to **TTkColor.fg("#ffff88")+TTkColor.bg("#000066")+**:class:`~TermTk.TTkCore.color.TTkColor.BOLD`''' + treeLineColor = TTkColor.fg("#444444") + '''Default to **TTkColor.fg("#444444")**''' \ No newline at end of file diff --git a/TermTk/TTkWidgets/button.py b/TermTk/TTkWidgets/button.py index 4bf9104d..b5019fe2 100644 --- a/TermTk/TTkWidgets/button.py +++ b/TermTk/TTkWidgets/button.py @@ -29,6 +29,33 @@ from TermTk.TTkCore.color import TTkColor from TermTk.TTkWidgets.widget import * class TTkButton(TTkWidget): + ''' TTkButton: + + Border = True + :: + + ┌────────┐ + │ Text │ + ╘════════╛ + + Border = False + :: + + [ Text ] + + The TTkWidget class is the base class of all user interface objects + + :param str text: the text shown on the button, defaults to "" + :type text: str, optional + :param bool border: the border of the button, defaults to "False" + :type text: str, optional + :param TTkColor color: the color of the border of the button, defaults to :class:`~TermTk.TTkGui.theme.TTkTheme.buttonTextColor` + :type color: :class:`~TermTk.TTkCore.color.TTkColor`, optional + :param TTkColor borderColor: the color of the border of the button, defaults to :class:`~TermTk.TTkGui.theme.TTkTheme.buttonBorderColor` + :type borderColor: :class:`~TermTk.TTkCore.color.TTkColor`, optional + + ''' + __slots__ = ( '_text', '_border', '_pressed', 'clicked', '_keyPressed', '_borderColor', '_textColor', @@ -37,6 +64,7 @@ class TTkButton(TTkWidget): '_borderColorDisabled','_textColorDisabled' ) def __init__(self, *args, **kwargs): + TTkWidget.__init__(self, *args, **kwargs) self._name = kwargs.get('name' , 'TTkButton' ) # Define Signals diff --git a/docs/source/_static/ttk.css b/docs/source/_static/ttk.css new file mode 100644 index 00000000..45c09b82 --- /dev/null +++ b/docs/source/_static/ttk.css @@ -0,0 +1,8 @@ + +.strike { + text-decoration: line-through; + } + + .underline { + text-decoration: underline; +} \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py index 31b31f94..2706e798 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -78,8 +78,9 @@ html_theme_options = { html_static_path = ['_static'] html_context = {'css_files': [ - # Workaround for RTD 0.4.3 bug https://github.com/readthedocs/sphinx_rtd_theme/issues/117 - '_static/theme_overrides.css', # override wide tables in RTD theme + # Workaround for RTD 0.4.3 bug https://github.com/readthedocs/sphinx_rtd_theme/issues/117 + '_static/theme_overrides.css', # override wide tables in RTD theme + '_static/ttk.css' ]} # html_theme = 'bizstyle'