Commit Graph

296 Commits

Author SHA1 Message Date
Isaiah Odhner
2a7427c5c8 Make Pyright happy with EnhancedDirectoryTree scrolling
- Don't use a lambda so it doesn't return something
- Assert region is found (not None)
2023-04-22 14:24:49 -04:00
Isaiah Odhner
91dd804f4a Fix type annotation for interpolations (*varargs gives a tuple) 2023-04-22 14:24:49 -04:00
Isaiah Odhner
00ab062d3e Assert type so Pyright knows about .plain and .markup 2023-04-22 13:58:09 -04:00
Isaiah Odhner
7cd44c0abe Ignore border_title
I found these "type: ignore" comments where border_title is defined,
and copied 'em!
2023-04-22 13:46:02 -04:00
Isaiah Odhner
27c9646b20 DRY window closing and make type checker happy with an assertion 2023-04-22 13:46:02 -04:00
Isaiah Odhner
065c5be2cb Appease the type checker by using maps of buttons 2023-04-22 13:46:02 -04:00
Isaiah Odhner
77295bd622 Int, innit? Init int 2023-04-22 13:11:23 -04:00
Isaiah Odhner
f7b68c7e7a Now do we enter the land of making code worse for the type checker's benefit? 2023-04-22 02:42:20 -04:00
Isaiah Odhner
f52201eebe Fix presumed method for removing nodes
(This removal code never runs, currently.)
2023-04-22 02:42:19 -04:00
Isaiah Odhner
1b56d78f70 Start type checking code 2023-04-22 02:31:58 -04:00
Isaiah Odhner
6b01b604fe Set up pyright type checker 2023-04-22 02:27:43 -04:00
Isaiah Odhner
27c95a537c Make mouse_at_start an Offset (consistently)
It was already initially defined as an Offset.
2023-04-22 01:12:48 -04:00
Isaiah Odhner
45fb2eb521 Implement polygon tool 2023-04-22 01:07:20 -04:00
Isaiah Odhner
2c469a5ef3 Draw curve preview also on mouse up and mouse down events
It feels more solid now, but it still disappears if the mouse leaves the canvas.
2023-04-21 23:52:23 -04:00
Isaiah Odhner
4f99b9f6a7 Make eraser tool square
I also have an erase_region method I could use now, alternatively.
2023-04-21 23:45:04 -04:00
Isaiah Odhner
6ce1856ec7 Fix brush/pencil/eraser previews 2023-04-21 23:40:48 -04:00
Isaiah Odhner
55e6ed6caf DRY some curve tool preview stuff 2023-04-21 23:38:11 -04:00
Isaiah Odhner
4d86f783be Implement Curve tool 2023-04-21 23:16:58 -04:00
Isaiah Odhner
18b78cea03 Outside the Ministry of Silly Walks's jurisdiction, it's a squaredance. 2023-04-21 23:16:58 -04:00
Isaiah Odhner
cc0bdf0973 Implement Text tool 2023-04-21 22:12:16 -04:00
Isaiah Odhner
7442480979 Optimize/abbreviate repeated integer division by the magnification level 2023-04-21 20:49:41 -04:00
Isaiah Odhner
d602753117 Refactor get_select_region 2023-04-21 20:18:58 -04:00
Isaiah Odhner
d39f491233 Fix selection while zoomed in 2023-04-21 19:45:01 -04:00
Isaiah Odhner
37cdcdfb13 Implement View > Zoom > Custom Zoom 2023-04-21 19:30:37 -04:00
Isaiah Odhner
cbe40406a6 Fix selection region changing on mouse up
It may be wrong (sometimes), but it shouldn't change (on mouse up)!
That's something (not nothing)!
2023-04-21 19:04:50 -04:00
Isaiah Odhner
5b2e4e0f83 Make warning into an assertion 2023-04-21 18:39:18 -04:00
Isaiah Odhner
612bc3d204 Fix: refresh properly when finishing a selection 2023-04-21 18:35:41 -04:00
Isaiah Odhner
c5c9bd9425 Fix dragging selection a second time: Don't replace image data! 2023-04-21 18:25:45 -04:00
Isaiah Odhner
e98931e8ef Implement Edit > Clear Selection (Delete) 2023-04-21 16:45:20 -04:00
Isaiah Odhner
61d3db4714 Fix undo/redo handling for the Select tool 2023-04-21 16:34:38 -04:00
Isaiah Odhner
1eea87c6c9 Fix error if dragging from off the canvas and releasing mouse over it 2023-04-21 16:07:43 -04:00
Isaiah Odhner
e579b005c0 Note difference between tool.name and tool.get_name() 2023-04-21 16:04:33 -04:00
Isaiah Odhner
9932a84554 And the selection tool is working! 2023-04-21 16:04:33 -04:00
Isaiah Odhner
c6873cdde7 Now it feels like progress... 2023-04-21 15:31:38 -04:00
Isaiah Odhner
bbdfa794fc I feel like I made it worse... 2023-04-21 15:24:45 -04:00
Isaiah Odhner
c3280d20d0 WIP: selection tool 2023-04-21 15:05:41 -04:00
Isaiah Odhner
f5bde1bb1f Accept spelling 2023-04-21 15:05:15 -04:00
Isaiah Odhner
1d8dec4ba4 Implement selection tool preview 2023-04-21 13:11:39 -04:00
Isaiah Odhner
f69f2f0009 Use messages for selecting tools/colors/characters
It's more code, but hopefully separating concerns will be worth it.
2023-04-21 12:26:07 -04:00
Isaiah Odhner
cf9eb652a0 Fix incorrect (irrelevant) docstring
copy/pasted or AI autocompleted
2023-04-21 12:15:11 -04:00
Isaiah Odhner
c076a1b5de Simplify further and fix Toolbox hiding behavior
Yay, this is how simple I originally thought it was going to be.
2023-04-21 11:52:22 -04:00
Isaiah Odhner
8040196f10 WIP: simplify hiding/showing Tools box and Colors box
This works for the ColorsBox, since it's the second element,
but not for the ToolsBox, since it's the first.
2023-04-21 11:45:10 -04:00
Isaiah Odhner
04a99f8a1d Remove type check param from query(); it's only allowed on query_one() 2023-04-21 11:38:20 -04:00
Isaiah Odhner
502a68209d Add type check parameters to DOM queries 2023-04-21 11:35:39 -04:00
Isaiah Odhner
41f192a4d3 Separate foreground/background color selection state
- This works differently to MS Paint. Instead of a color for clearing
  (and for the inside of shapes) and a color for brushing (and the
  outline of shapes), here there's a background and text color for each
  cell, collectively treated like the foreground color in MS Paint.
- There's no way to select a foreground color yet other than opening
  an image and using the color picker.
2023-04-21 11:25:22 -04:00
Isaiah Odhner
43d213fe46 Rename palette selection area elements 2023-04-21 11:04:30 -04:00
Isaiah Odhner
68d069fa8d Implement View > Zoom > Large Size / Normal Size 2023-04-21 01:40:26 -04:00
Isaiah Odhner
da9813ea9b Tweak titlebar close button colors
Don't dim the highlight sides on hover. I feel like that makes it feel
like it's disabled. But don't dim the center as much, so the highlight
doesn't _stand out_ when hovering.
2023-04-21 00:36:08 -04:00
Isaiah Odhner
07757edc24 Make titlebar close button appear smaller 2023-04-21 00:31:04 -04:00
Isaiah Odhner
8e82203bb5 Note another attempt at fixing flickering when using the magnifier tool
I tried `refresh(layout=True, repaint=False)` before `_scroll_to`, but no luck.
2023-04-21 00:05:01 -04:00