You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.5 KiB
5.5 KiB
TODO
- Follow PEP 8 coding style
- Move the Global Constants outside TTk object
- Add Typing (good luck) https://docs.python.org/3/library/typing.html
- Remove Duplicate functionalities (i.e. Widget)
- Use @property/@setter when possible
- Uniform the setter/getter/signal/slots
- [UTF-8] Handle "Fullwidth" forms characters
https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms
https://en.wikipedia.org/wiki/Halfwidth_and_Fullwidth_Forms_(Unicode_block)
https://stackoverflow.com/questions/68412744/count-length-of-value-within-a-cell-with-full-width-characters
- Handle Zero Width Joiner (i.e.👩🔧 -> 👩🔧👩🏻🔧👩🏻🔧👩🏼🔧👩🏽🔧👩🏾🔧👩🏿🔧): https://github.com/luchr/WidthInTerminals
- [/] Support Hyperlink: (gnome-terminal) https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
- Process child events before parent
- Rewrite the way focus is handled https://doc.qt.io/qt-5/focus.html Ref: https://github.com/ceccopierangiolieugenio/scripts/blob/master/Programming/python/pyqt5/textedit.001.py
ttkDesigner
- Support widgets in the TTkTree (required in the properties widget)
Terminal Helper
- Events
- Window : SIGWINCH triggered when the terminal is resized
Input Class
- Return Error if Mouse RE does not match
- Handle the Paste Buffer
- Investigate the middle mouse button paste note: It works only in "INSERT" mode on Vim
- Handle Special Keys (UP, Down, . . .)
- Handle CTRL-Mouse
- [/] Handle CTRL,ALT,SHIFT + Key (Tab, UP, Down, . . .)
- Handle SHIFT + Tab
- Handle Tab Focus
- Handle CTRL,ALT,SHIFT + (F1 -> F12)
- [/] Handle CTRL,ALT,SHIFT + (Up, Down, Left Right)
- Handle SHIFT + Tab
- Events
https://tkinterexamples.com/events/events.html
https://www.pythontutorial.net/tkinter/tkinter-event-binding/
- Keyboard
- Mouse
- Implement the different Escape codes (Check https://github.com/vercel/hyper) https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking
Colors
- Allow dynamic depth change
- Define a gradient feature
Canvas Class
- Have a look to the Unicode chartable: https://www.utf8-chartable.de/unicode-utf8-table.pl
Signal/Slots
- Implement Signal/Slots
WeakRef
- TTkTimer._timers
- Signals/Slots
Logs
- Log Class
- Run Logger on a separate thread (push string to a queue)
- Include option to force print
- Log helpers
- File and Stdout logger
- logger auto integration
- stdout until mainLoop
Layout
- Add Weight in V and H Layout
- Add addLayout (adDItem) method - Nested layouts
- Add Grid Layout
- Add ColSpan / RowSpan
- Get rid of groupMoveTo
- Get rid of addWidget
AbstractScrollArea
- Implement something that mimic the QAbstactScrollArea https://doc.qt.io/qt-5/qabstractscrollarea.html https://doc.qt.io/qt-5/qscrollarea.html
- Implement the focus policy
Overlay widget
- Use the nested layout for the overlay
- Rewrite the Handling (ttk.py) It would be nice to have it as child outside the layout
- Enable mouse move on overlay
Widgets
- Add Size Policy (fixed minimum maximum expanding)
- Add Show/Hide
- Clean the way the parent is assigned, propagated Widget [setParent, addWidget, . . ], GridLayout [addWidget]
Button Widget
- Basic Implementation
- Events (Signal/Slots)
- Themes
Line Edit Widget
- Basic Implementation
- Events (Signal/Slots)
- Themes
- Input Type Numbers/Password
Text Edit Widget
- Basic Implementation
- Events (Signal/Slots)
- Themes
Fancy Table Widget
- Basic Implementation
- Events (Signal/Slots)
- Themes
Tree Widget
- Basic Implementation
- Implement cache/pagination for big data
- Events (Signal/Slots)
- Themes
Window Widget
- Basic Implementation
- Events (Signal/Slots)
- Themes
CheckBox Widget
- Basic Implementation
- Events (Signal/Slots)
- Themes
Radio button Widget
- Basic Implementation
- Events (Signal/Slots)
- Themes
ComboBox (dropdown) Widget
- Basic Implementation
- Events (Signal/Slots)
- Themes
Splitter widget
- Basic Implementation
- Snap on min/max sizes
- Events (Signal/Slots)
- Themes
- Support addItem
Tab Widget
- Basic Implementation
- Events (Signal/Slots)
- Themes
- Align Selected to center
- Add Menu
- Keyboard events
Spin Box
- Basic Implementation
- Events (Signal/Slots)
- Themes
Progress Bar
- Basic Implementation
- Events (Signal/Slots)
- Themes
Graph Widget
- Basic Implementation
- Events (Signal/Slots)
- Themes
Header Menu
- Basic Implementation
- Events (Signal/Slots)
- Themes
Pickers
Color Picker~/github/Varie/pyTermTk~/github/Varie/pyTermTk
- Basic Implementation
- Events (Signal/Slots)
- Themes
- Use Spinbox for R G B
Date Picker
- Basic Implementation
- Events (Signal/Slots)
- Themes
File Picker
- Basic Implementation
- Events (Signal/Slots)
- Themes
Yes/No Ok/Cancel Picker
- Basic Implementation
- Events (Signal/Slots)
- Themes