jspaint/TODO.md

154 lines
4.6 KiB
Markdown
Raw Normal View History

2014-05-18 08:47:46 +00:00
# Todo
2014-05-22 08:20:59 +00:00
* Improve README
2014-06-03 00:13:16 +00:00
* Introduce and explain the project ✓ ...better?
* Is a link in the header visible enough?
* Publish jspaint to the webstore and link to that
* I feel like the tone is sort of weird or something
* Make it pretty with images
2014-05-18 08:47:46 +00:00
* Menus!
2014-05-29 19:04:47 +00:00
* Keyboard Navigation
* Mouse navigation
* Use keyboard shortcuts defined in the `menus` data structure (which isn't currently saved to a variable) to declaratively setup hotkeys
* on key press, loop through the menus
* if shortcut matches
* "call to action"
* break
* Pixel Perfection
2014-05-18 08:47:46 +00:00
2014-05-22 08:20:59 +00:00
* Keep track of what's saved
* Don't warn about saving saved files (Ctrl+S and then Ctrl+N)
* Do warn about losing unsaved files (close button, etc.)
2014-05-22 08:20:59 +00:00
* Issue: status text gets cut off
2014-06-07 16:11:49 +00:00
Also, it should gracefully push the dimension displays off the edge instead of covering up the text with usually blank space
2014-08-08 21:44:46 +00:00
* It's not supposed to show the canvas handles when there is a selection. It used to hide them but now it doesn't.
2014-06-07 15:37:08 +00:00
* Handle some edge cases
* `this_ones_a_frame_changer();` (undo, redo, reset, file_open, ... switching between frames of an animation)
* That's not how mspaint handles these edge cases. It disables actions while you're drawing. Maybe I should do that. (It does allow actions when you have a selection, and handles this like I tried to)
2014-06-07 15:37:08 +00:00
* The window can be smaller than the minimum window area of mspaint
* Dialogue windows should go away at some point. Also, there should only be one of most of them at a time.
2014-06-07 15:37:08 +00:00
* Set up minification?
2014-05-22 08:20:59 +00:00
2014-05-30 07:00:01 +00:00
* Use win98 default scrollbar size @easy
2014-05-22 08:20:59 +00:00
* Minor color differences (0x808080 != 0x7b7b7b)
* Tips and Tricks from [this tutorial](http://www.albinoblacksheep.com/tutorial/mspaint)
2014-05-22 08:20:59 +00:00
* Brush Scaling ✓
* Custom Brushes ✓
* The 'Stamp' Tool ✓
* Image Scaling (Ctrl+Plus and Ctrl+Minus on the Numpad to scale the selection by factors of 2)
2014-05-22 08:20:59 +00:00
* Color Replacement (see [Tools](#tools))
* The Grid (Ctrl+G + zoom6x+)
* Quick Undo ✓ (I also made it redoable, in case you do it by accident)
* Scroll Wheel draws line down and to the right (let's maybe not implement this hm?)
2014-05-18 08:47:46 +00:00
2014-05-22 08:20:59 +00:00
### Extended editing
2014-05-18 08:47:46 +00:00
* Transparent PNGs
2014-08-08 21:44:46 +00:00
* Detect transparency when opening an image
* Optimization: Don't forget to assume jpegs are opaque. Because they are.
2014-08-08 21:44:46 +00:00
* Option in Image > Attributes...
* Animated GIFs
2014-08-08 21:44:46 +00:00
* Use ternary color as transparent color?
* Animated Transparent (A)PNGs
* Multisize Icons
2014-05-18 08:47:46 +00:00
### Mobile support
2014-05-18 08:47:46 +00:00
* Multitouch (use pointer events polyfill)
* Click current colors area to swap
2014-05-18 08:47:46 +00:00
### Actions
2014-05-22 08:20:59 +00:00
* Canvas Manipulations
* Rotate
* Flip
* Skew
2014-08-08 21:44:46 +00:00
* Invert ✓
* Clear
* Undo/Redo History to Frames
2014-05-18 08:47:46 +00:00
### Tools
2014-05-22 08:20:59 +00:00
2014-08-08 21:44:46 +00:00
* Curve tool
* Aliasing
2014-08-08 21:44:46 +00:00
* Polygon tool
* Issue with extra undoables
* Ending the operation when switching tools
* Self-intersecting shapes are handled differently by mspaint than with the Canvas API
* Aliasing
* OPTIONS
* shapes all have their own settings for [fill | stroke | stroke_fill] ✓
* shapes, lines and curves all use one setting for stroke width ✓
* selection + free-form selection + text use one setting for [opaque/transparent] ✓
* secret 10x zoom by clicking the area just underneath the 8x zoom
2014-05-22 08:20:59 +00:00
* visual area is different from selection highlight area is different from clickable area
* fill bucket and airbrush cursors are supposed to be inverty :\
2014-05-22 08:20:59 +00:00
* Color Eraser
2014-06-03 00:13:16 +00:00
* right click with the eraser to selectively replace color1 with color2
2014-05-22 08:20:59 +00:00
* Fill Bucket
* Find a better fill algorithm!
* get into those corners!
* handle transparency
2014-05-22 08:20:59 +00:00
* Text tool
* Handles
* Wrapping!
* Expanding to new lines
* Fonts (with `FontBox`)
2014-05-22 08:20:59 +00:00
* Save text and record transformations so it can be saved as an SVG with invisible selectable elements
* Select tool
* Handles
* Strokes
* Shapes respond to Ctrl, by...
* It's complicated.
* Use stroke width
* Rectangle: The stroke is within the rectangle.
* Rounded Rectangle / Ellipse: If the width/height is less than the stroke width, it draws the fillstroke.
### Colors
2014-06-03 00:13:16 +00:00
This isn't in mspaint, but maybe use should be able to click (double-click?) one of the selected colors to change it directly?
Or for mobile, click to switch colors.
### Components / Windows
* Drag components into a window
* Drag window and component together seamlessly
* Double-click a component window's titlebar to dock the component to its most recent location.
### BSOD
2014-05-22 08:20:59 +00:00
Press `/~ to bluescreen
2014-06-07 15:37:08 +00:00
Prankily wait for next user input before fullscreening and bluescreening
2014-05-22 08:20:59 +00:00
### Chrome App
2014-05-22 08:20:59 +00:00
* Use the chrome.wallpaper API to change the ChromeOS wallpaper.
* Theoretical support ✓
* Test this on Chrome OS
2014-05-22 08:20:59 +00:00
2014-05-29 19:04:47 +00:00
* Themed window border
* (Note: Minimum window size might need updating)
2014-05-29 19:04:47 +00:00
* Publish to webstore!?!?!?