For next release ---------------- + Add IntEntry class in src/gui/ with spin-buttons. + Add feedback to "Shift+S" shortcut to switch "snap to grid". + Fix palette editor to avoid generating a lot of consecutive Undo actions. + Convert jaccel::key_list to std::vector<> + Integrate "copy & paste" loop with selection moving loop. + Shade drawing mode. + Export/Import sprite sheets. + Rethink the color-bar to show the full palette and a RGB gradient. + Sort palette entries. + Add "Remap" button to palette editor after a palette entry is modified: This button should apply a color curve to the whole sprite to remap old indexes to the new positions. + Support for non-zero index entries as transparent in Indexed sprites. + Move launcher.cpp to base/ lib adding an extension point for "gui" lib. + Remove src/dialogs/repo,playfli,drawtext. + Move src/dialogs/aniedit,filesel to src/widgets (remove dialogs/ directory). + Merge everything related to configuration/settings in one class (allow configuration per document). Use cfg.cpp and settings/ dir. Refactoring ----------- - Eradicate JList. - Replace JRect & jrect with gfx::Rect. - Create gfx::Region to replace JRegion & jregion. - Separate the source code in independent libraries: 1) jinete -> gui 2) sprite-core 3) file-io 4) undo (uses sprite-core) 5) aseprite (the application) - editors_ -> MultiEditors class widget - rename core/cfg.h to cfg_file.h - convert all widgets to classes: + match Jinete design with Vaca library. + move all functions (jwidget_*) to methods in Widget class. + the same for each widget (e.g. jbutton_* to Button widget) + AppHooks to Vaca::Signals + Convert all JI_SIGNAL to base::Signals - all member functions should be named verbNoun instead of verb_noun or noun_verb. - all functions to handle an object should be converted to member functions: - e.g. jwidget_set_text -> Widget::setText High priority work ------------------ + Selection tools do not have "move" functionality incorporated yet as we talked (they just add/subtract selection) + The following tools do not work: scroll, move. - Fix paste behavior: + paste when there are no images (create one image or put the clipboard as the layer's image) + create a 'floating' flag for image-layers and make the trasformation embedded in the editor + Ctrl+T should transform the current cel - fix bilinear: when getpixel have alpha = 0 get a neighbor color. - fix sliders in Tools Configuration, they are too big for small resolutions. - rewrite palette-editor to edit multiple-palettes. - fix quantize (one palette for all frames, one palette per frame) - pal-operations (sort, quantize, gamma by color-curves, etc.); - complete palette operations, and palette editor (it needs a slider or something to move between palette changes) - if there is activated the Tools Configuration dialog box, the Shift+G and Shift+S should update it - add two DrawClick2: - DrawClick2FreeHand - DrawClick2Shape - see the new Allegro's load_font - finish ICO files support. - add "size" to GUI font (for TTF fonts); - layer movement between sets in animation-editor; + add all the "set" stuff again; - fix algo_ellipsefill; - view_tiled() should support animation playback (partial support: with left and right keys). Wish-list --------- - dacap wish-list: + added starred file-items in the file-selector. - manuq wish-list: + layer-with-constant-cel - Mateusz Czaplinski ideas: + when move selections, will be good the possibility to see relative position from the starting point of movement; + make drawing the 'marching-ants-rectangle' a prioritaire thing to draw (when move it). Low priority stuff ------------------ - add unit-tests for "raster" and file formats. - test routines: load/save_pic_file, load/save_msk_file, load/save_col_file. - fix the fli reader (both Allegro and Gfli): when a frame hasn't chunks means that it's looks like the last frame; - talk with Elias Pschernig, his "do_ellipse_diameter" (algo_ellipse) has a bug with ellipses of some dimensions (I made a test, and a various sizes have errors). - optimize the *_to_allegro image methods (I profiled ASE, and these are the more slow routines in all the program); - remove the jquickmenu.c