Isaiah Odhner
5bf2280569
Fix cycling characters in CharInput due to events queuing
2023-04-24 15:30:08 -04:00
Isaiah Odhner
43b06f2b24
Don't hide help text when hovering menu bar buttons
2023-04-24 15:16:38 -04:00
Isaiah Odhner
9a45b3c839
Disable and hide hotkeys for top level menus since I can't detect Alt
2023-04-24 15:08:45 -04:00
Isaiah Odhner
ac6f9cf2a6
Comment / add docstrings to hotkey handling code
2023-04-24 14:46:14 -04:00
Isaiah Odhner
3a0adb3c94
Fix deselection by clicking outside canvas
2023-04-24 12:54:06 -04:00
Isaiah Odhner
889d1b5636
Invert underlying colors for Free-Form Select preview, don't use selected color
2023-04-24 12:48:49 -04:00
Isaiah Odhner
b7aabd642c
Refactor shared conditional to early return in stamp_char
2023-04-24 12:16:22 -04:00
Isaiah Odhner
1a135c4153
Rename a variable that is inside is_inside_polygon
...
This is an AI-offered function... so I'm sort of guessing here.
This fixes a spell checker issue but there's also a "possibly unbound"
type checker issue here.
2023-04-24 03:09:06 -04:00
Isaiah Odhner
23352d64ac
Fix "incompatible" override type checker errors
...
Method "watch_value" overrides class "Input" in an incompatible manner
Return type mismatch: base method returns type "Coroutine[Any, Any, None]", override returns type "None"
Type "None" cannot be assigned to type "Coroutine[Any, Any, None]"PylancereportIncompatibleMethodOverride
Method "validate_cursor_position" overrides class "Input" in an incompatible manner
Parameter 2 name mismatch: base parameter is named "cursor_position", override parameter is named "position"PylancereportIncompatibleMethodOverride
These wouldn't actually be problems, due to the nature of the reactive properties system, but whatever, I can make it match, no problem.
2023-04-24 03:07:19 -04:00
Isaiah Odhner
6259d11ec5
Switch to previous tool only on mouse up (for Magnifier)
...
This fixes accidentally activating the other tool when using the Magnifier, and matches the behavior of MS Paint.
2023-04-24 02:16:40 -04:00
Isaiah Odhner
961dfe8039
Add some type hints to variables
...
I don't know what all should have type annotations, and honestly it's
pretty confusing how these are used. For instance, `selecting_text`
goes from:
(variable) selecting_text: bool
to:
(variable) selecting_text: Literal[False]
when annotating it as a bool, looking at the hover text in VS Code
with Pylance language server.
2023-04-24 02:08:48 -04:00
Isaiah Odhner
0c42edce9c
Fix cells stroked outside the mouse's path
...
Use absolute positions instead of delta coordinates.
The deltas would sometimes give points "jutting out" — only by a pixel,
but confusing when trying to do pixel art. You might not even notice it
but it might make you feel like a bad artist until you do.
2023-04-24 01:41:18 -04:00
Isaiah Odhner
dc02833f3f
Shorten selected tool condition (DRY)
2023-04-24 01:27:28 -04:00
Isaiah Odhner
a875c61fff
Fix mouse coordinates with a better workaround
2023-04-24 01:25:07 -04:00
Isaiah Odhner
bcb26707ef
Merge Hovered and Closed events; clear text when mouse leaves menu item
2023-04-24 01:13:04 -04:00
Isaiah Odhner
cb310c2baf
Un-bold menus
...
They're buttons, so they're bold by default.
2023-04-24 01:01:02 -04:00
Isaiah Odhner
2cdb728d64
Fix mouse wheel & show description when hovering over grayed menu items
2023-04-24 00:56:51 -04:00
Isaiah Odhner
c12036880e
Show menu item descriptions in the status bar
2023-04-24 00:43:50 -04:00
Isaiah Odhner
d62b320ede
Add default status text "For Help, click Help Topics on the Help Menu."
2023-04-24 00:03:05 -04:00
Isaiah Odhner
14ca88ba5b
Show dimensions in status bar, and coords in more cases
2023-04-24 00:02:50 -04:00
Isaiah Odhner
c10f2788c1
Remove outdated comment
2023-04-23 23:05:52 -04:00
Isaiah Odhner
4a308f22e1
Tweak status bar styles
...
- Make there be a border at the outside on both the left and the right
- For the inner dividing borders, use left instead of right so that
there's a slight gap between the left-aligned text and the border.
2023-04-23 22:56:51 -04:00
Isaiah Odhner
76e578cf4a
Show mouse coords in status bar
2023-04-23 22:30:16 -04:00
Isaiah Odhner
b7d14f02bd
Add an empty status bar
2023-04-23 22:22:28 -04:00
Isaiah Odhner
eb3b93d454
Require both clicks to be on the same button for a double click
2023-04-23 21:51:44 -04:00
Isaiah Odhner
8136383bca
Return to previous tool after using Magnifier or Pick Color tool
2023-04-23 19:51:12 -04:00
Isaiah Odhner
70cb60218f
Close menus if clicking outside the menus
2023-04-23 19:42:49 -04:00
Isaiah Odhner
fc35e34153
Use Binding(...) for all bindings, for easy access to priority/show args
2023-04-23 17:22:12 -04:00
Isaiah Odhner
d411b84605
Fix CharInput blocking Ctrl+A, Ctrl+W, etc.
2023-04-23 17:20:08 -04:00
Isaiah Odhner
a07606fc70
Navigate buttons with left/right or up/down in message boxes
2023-04-23 15:43:45 -04:00
Isaiah Odhner
cde031f70d
Restore Ctrl+C to quit (for now)
2023-04-23 15:42:12 -04:00
Isaiah Odhner
138776456d
Combine bindings, using comma separation
2023-04-23 15:41:41 -04:00
Isaiah Odhner
286852616b
Remove meta+q binding for Quit
...
I was going to include meta as an alternative for all shortcuts, for
macOS, but I don't know if this works, and it's a little silly having
just one shortcut with meta like this.
2023-04-23 15:41:41 -04:00
Isaiah Odhner
0e1e43a67b
Enable bindings for unimplemented actions
...
Might as well show the "Not implemented" dialog for keyboard shortcuts.
2023-04-23 15:02:50 -04:00
Isaiah Odhner
f93a884e74
Update the palette when double clicking to edit a color
2023-04-23 14:58:17 -04:00
Isaiah Odhner
60ff2c27f8
Fix Cancel buttons in Edit Colors and Choose Character dialogs
2023-04-23 14:50:56 -04:00
Isaiah Odhner
1b76caa23e
Fix double click detection in color palette
...
Duh, just use the button press handler.
2023-04-23 14:36:05 -04:00
Isaiah Odhner
22547da2b2
Start making Edit Colors dialog
...
It's just a larger palette so far.
2023-04-23 14:29:51 -04:00
Isaiah Odhner
e76ce9e721
Fix out of bounds array access for Pick Color tool
2023-04-23 13:50:41 -04:00
Isaiah Odhner
f950c9964b
Stamp the selection with Ctrl
2023-04-23 02:14:28 -04:00
Isaiah Odhner
9f6a8fd559
Trap focus within window when cycling with Tab / Shift+Tab
...
Too easy!
2023-04-23 02:09:40 -04:00
Isaiah Odhner
4dc7bc08d6
Make paint.py executable
2023-04-23 01:46:49 -04:00
Isaiah Odhner
edc0048ecc
Half-implement menu item hotkeys
2023-04-23 01:43:54 -04:00
Isaiah Odhner
031a0a3e72
Implement Select All
2023-04-23 01:24:43 -04:00
Isaiah Odhner
1a6bfb5b90
Lazily add a triangle to indicate the Zoom submenu
2023-04-23 01:03:52 -04:00
Isaiah Odhner
f106cc5c35
Gray out unimplemented menu items
2023-04-23 00:51:29 -04:00
Isaiah Odhner
dbce1434cd
Constrain selection so it doesn't go completely outside the document bounds
2023-04-23 00:11:17 -04:00
Isaiah Odhner
cb0db3b6e6
Deselect when clicking outside the canvas
2023-04-23 00:01:57 -04:00
Isaiah Odhner
49bd80b17a
Fix out of bounds array access for Free-Form Select
2023-04-22 23:51:12 -04:00
Isaiah Odhner
74dceee2f3
Implement Free-Form Select tool
2023-04-22 23:03:09 -04:00