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.
4.3 KiB
4.3 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)
-
Support Hyperlink: (gnome-terminal) https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
-
Process child events before parent
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, . . .)
- 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
Logs
- Log Class
- Run Logger on a separate thread (push sring 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
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
Table Widget
- Basic Implementation
- 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
- Basic Implementation
- Events (Signal/Slots)
- Themes
- Use Spinbox for R G B
File Picker
- Basic Implementation
- Events (Signal/Slots)
- Themes