Commit Graph

462 Commits

Author SHA1 Message Date
Lucio Andrés Illanes Albornoz
5b63d0b8dd assets/audio/roarspoke15.wav: added. 2019-10-26 10:28:28 +02:00
Lucio Andrés Illanes Albornoz
c8a048403a Hard-wire default canvas size on New to [100, 30]. 2019-10-25 13:21:48 +02:00
Lucio Andrés Illanes Albornoz
0c66f94797 Cleanup, bugfixes & C++ backend implementation.
1) {About,Melp?} window: switch to green on black.
2) Assets window: scroll assets list on selected item update w/ <Cursor> or on deletion.
3) Canvas window: change default brush colours to [3, -1].
4) Canvas window: copy canvas cells given transparent cells from tools.
5) Canvas window: don't disable {re,un}do during object tool usage.
6) Canvas window: don't hide cursor during {re,un}do.
7) Canvas window: draw new cells using current brush background colour on resize.
8) Canvas window: fix memory leak on cell size updating.
9) Text tool: process [\r\n] in text pasted from clipboard.

assets/audio/roar{vap0r[1-8],viking[1-5]}.wav: added.
assets/text/README.txt: updated.
assets/tools/AnsiToMiRCART.py: added (for spoke.)
assets/tools/deploy-python.sh: updated.
2019-10-24 21:14:00 +02:00
Lucio Andrés Illanes Albornoz
90840bd0a0 Various bugfixes & usability improvements.
1) Canvas window: clear new canvases w/ [-1, -1] by default.
2) Canvas window: don't create new canvas on initialisation.
3) Canvas window: set default brush colours to [3, 9].
4) Erase tool: correctly fill non-text cells w/ background colour.
5) GUI: correctly show current operator name in status bar whilst active.
6) GUI: {de,in}crease canvas {height,width} w/ <Ctrl> & cursor keys.
7) GUI: disable tiling items unless current tool is object tool.
8) GUI: select tool w/ <F2-F10> accelerators.
2019-10-01 21:34:42 +02:00
Lucio Andrés Illanes Albornoz
bc969295dd Various bugfixes & usability improvements.
1) Backend: initial optimised cell rendering Python C module implementation skeleton.
2) Backend: raise alpha blending {fore,back}ground colour coefficient to {0.8,1.0 - 0.8}, resp.
3) Backend: reimplement cell rendering using Draw{Rectangle,Text}List().
4) Canvas window: eliminate {canvas,{scroll,tool}bar} flickering during resize.
5) Canvas window: fix cursor artifacts during resizing by masking cursor.
6) Canvas window: restore cursor after executing operations that remove it.
7) Import store: correctly parse non-conforming \u0003,<bg colour> sequences.
8) GUI: correctly save list of recently used files post-update.
2019-10-01 19:03:29 +02:00
Lucio Andrés Illanes Albornoz
e1bf3a3ad4 assets/images/roar.png: updated. 2019-09-28 20:25:03 +02:00
Lucio Andrés Illanes Albornoz
1fd0768912 Apply tool w/ mouse state on brush/colour update. 2019-09-28 20:12:53 +02:00
Lucio Andrés Illanes Albornoz
19957a2006 Implements automatic snapshotting & restoring from snapshots. 2019-09-28 19:45:45 +02:00
Lucio Andrés Illanes Albornoz
451a708d7a Minor cleanup & usability improvements.
1) Add format clarification to commands documentation.
2) Allow changing {canvas,brush} size w/ {<Ctrl> <Shift>,<Ctrl>} <Mouse wheel>.
3) Backend: {draw,produce,remove} cursor w/ list of coordinates instead of cells.
4) Update changing rendered cell size hotkey to <Ctrl> <Alt> <Mouse wheel>.
2019-09-28 12:08:52 +02:00
Lucio Andrés Illanes Albornoz
de96a7cdaa Various bugfixes.
1) Fix erroneous canvas repositioning on resize given no docked toolbars.
2) Correctly update scrollbar parameters when changing font (and hence cell) size.
2019-09-28 10:11:49 +02:00
Lucio Andrés Illanes Albornoz
4b98d1cdf1 Various bugfixes & usability improvements.
1)  Assets window: adds clear list context menu item.
2)  Assets window: allow deleting multiple selected items.
3)  Assets window: fix list view cursor key navigation.
4)  Backend: correctly blend transparent background cursor cells with canvas character cells.
5)  Backend: correctly determine cell size & set font size.
6)  Backend: correctly unmask cursor.
7)  Backend: disable font anti-aliasing on Windows.
8)  Backend: render transparent background cells as RGBA #303030FF.
9)  Canvas window: adds <F1> accelerator for `View melp?' menu item.
10) Canvas window: implement {dockable,floating} toolbars w/ wx' AUI framework.
11) Canvas window: separate tools toolbar from edit commands toolbar & dock both on right-hand side alongside each other.
12) Flip horizontally tool: flip characters, including some Unicode symbols.
13) Flip vertically tool: flip additional Unicode symbols.
14) Text tool: don't process keyboard events w/ either of <{Alt,AltGr,Ctrl}> modifiers.

assets/images/roar.png: updated.
2019-09-27 20:17:39 +02:00
Lucio Andrés Illanes Albornoz
2592fa9ad8 Tool bug fixes & usability improvements.
1) Circle, rectangle tool: initiate dragging with <Ctrl>, conclude w/ <[LR]MB> release.
2) Circle tool: fix artifacts and radius inference from brush size.
3) Line tool: fix origin point artifacts.
4) Rectangle tool: correctly determine target point.
2019-09-27 14:22:58 +02:00
Lucio Andrés Illanes Albornoz
fe6b79a2ab Implement {circle,rectangle} dragging w/ <Ctrl>.
assets/text/hotkeys.txt: updated.
assets/text/TODO: updated.
2019-09-26 23:34:01 +02:00
Lucio Andrés Illanes Albornoz
50edb55e0b Fix brush size toolbar items. 2019-09-26 23:15:56 +02:00
Lucio Andrés Illanes Albornoz
76e57bd081 Improve backend latency and throughput via batching.
assets/text/TODO: updated.
libtools/ToolLine.py: reflect brush width in pre-line dragging cursor.
2019-09-26 22:38:28 +02:00
Lucio Andrés Illanes Albornoz
86e2c9e904 Various bugfixes & usability improvements.
1) Correctly unmask cursor and dispatch delta patches on successful {re,un}do.
2) Don't prompt to save twice on exit via Exit {accelerator,menu item}.
3) Fix cursor artifacts by always resetting origin point on DC whilst unmasking cursor cells.
4) Fix {re,un}do {accelerator,{menu,toolbar} item} desynchronisation with actual canvas journal undo level.
5) Remove scattered remnants of initial implementation of unimplemented italic support.
6) Replace rendering transparent cursor w/ manual blending over wx.GraphicsContext() due to canvas bitmap masking & performance degradation.

assets/text/TODO: updated.
2019-09-26 14:06:11 +02:00
Lucio Andrés Illanes Albornoz
0750bc2261 assets/audio/roardaemon1.wav: added.
assets/text/TODO: updated.
2019-09-25 22:29:48 +02:00
Lucio Andrés Illanes Albornoz
c45a616442 Only allow setting selection w/ <Esc> post-selection. 2019-09-24 18:12:50 +02:00
Lucio Andrés Illanes Albornoz
e2183acf46 Update canvas filename on save as.
libroar/RoarCanvasCommandsFile.py:{_importFile,canvasSaveAs}(): fix return values.
2019-09-24 18:09:05 +02:00
Lucio Andrés Illanes Albornoz
279cca3313 Prompt to save changes on application exit. 2019-09-24 18:08:49 +02:00
Lucio Andrés Illanes Albornoz
286df901a7 assets/images/roar.png: updated. 2019-09-24 18:00:21 +02:00
Lucio Andrés Illanes Albornoz
50c9d69309 Fix underlined cells rendering line width. 2019-09-24 17:59:51 +02:00
Lucio Andrés Illanes Albornoz
fdcf242884 assets/audio/roarspoke1[234].wav: added. 2019-09-24 17:53:29 +02:00
Lucio Andrés Illanes Albornoz
b479e7ddbb Remove cursor before {re,un}doing to prevent artifacts.
assets/text/TODO: updated.
2019-09-24 17:45:18 +02:00
Lucio Andrés Illanes Albornoz
9eec4f58ab Increase roar window height to match default canvas size.
{assets/tools,lib{canvas,gui,roar,rtl,tools}}/*.py: remove Vim fold marker remnants.
2019-09-24 17:02:02 +02:00
Lucio Andrés Illanes Albornoz
a3d1ed3d96 libroar/RoarWindowMelp.py: set button accelerator. 2019-09-24 16:59:51 +02:00
Lucio Andrés Illanes Albornoz
84d20a4398 Adds GitHub & (hotkey) help dialogue menu items.
assets/text/hotkeys.txt: updated.
assets/text/TODO: updated.
libtools/ToolText.py: minor cleanup.
2019-09-24 16:46:02 +02:00
Lucio Andrés Illanes Albornoz
6ab7c443eb Erase back- w/ foreground colour on <RMB>.
assets/text/hotkeys.txt: updated.
assets/text/TODO: updated.
2019-09-24 15:44:54 +02:00
Lucio Andrés Illanes Albornoz
c083800b3b Don't show error when cancelling assets loading. 2019-09-24 15:13:48 +02:00
Lucio Andrés Illanes Albornoz
35f6910427 Load & store LRU file dialogue directory.
assets/text/TODO: updated.
2019-09-24 15:10:34 +02:00
Lucio Andrés Illanes Albornoz
c7dd80327d Fix canvas windows size regarding scrollbars.
assets/text/TODO: updated.
libroar/RoarClient.py: I FUCKING _HATE_ WXPYTHON
2019-09-24 14:39:37 +02:00
Lucio Andrés Illanes Albornoz
a2295d1cfc Various bugfixes & usability improvements.
1) Directly render characters to canvas DC w/ clipping.
2) Fix background colour toolbar icon bitmaps.
3) Line tool: correctly set brush colours whenever updated.
4) Line tool: fix artifacts bug.
5) Render tool cursor transparently at opacity 200 (out of 255.)

assets/text/TODO: updated.
2019-09-24 14:03:16 +02:00
Lucio Andrés Illanes Albornoz
e68cae09b5 assets/text/TODO: updated. 2019-09-23 22:46:11 +02:00
Lucio Andrés Illanes Albornoz
3eb4eaeea5 RoarWindowAbout.py: add website URL. 2019-09-23 22:32:37 +02:00
Lucio Andrés Illanes Albornoz
dc8b96146e Further shorten {file,operator,tool} status bar items.
assets/images/roar.png: updated.
2019-09-23 22:25:32 +02:00
Lucio Andrés Illanes Albornoz
e0a9c97343 assets/images/tool{Erase,PickColour}.png: updated. 2019-09-23 22:18:40 +02:00
Lucio Andrés Illanes Albornoz
c355e848b2 Implements pick colour tool.
assets/text/TODO: updated.
2019-09-23 22:12:20 +02:00
Lucio Andrés Illanes Albornoz
cefb982c1d Implements erase tool.
assets/text/TODO: updated.
2019-09-23 21:59:41 +02:00
Lucio Andrés Illanes Albornoz
1d650bd64b Allow purging MRU list manually & on failure.
assets/text/TODO: updated.
2019-09-23 21:37:52 +02:00
Lucio Andrés Illanes Albornoz
600cecfad1 Fix ANSI underline encoding, 2019-09-23 20:42:30 +02:00
Lucio Andrés Illanes Albornoz
b1de2eda79 Fix ANSI<->mIRC colour conversion. 2019-09-23 20:34:55 +02:00
Lucio Andrés Illanes Albornoz
9c03910420 Fix canvas windows size regarding scrollbars. 2019-09-23 20:24:18 +02:00
Lucio Andrés Illanes Albornoz
e6e0951029 Convert tabs to position-modulated run of whitespaces. 2019-09-23 19:56:10 +02:00
Lucio Andrés Illanes Albornoz
a48d7f3d32 Fix dirty flag updating on {new,open,resize}.
assets/text/hotkeys.txt: updated.
assets/text/TODO: updated.
2019-09-23 19:55:31 +02:00
Lucio Andrés Illanes Albornoz
bff70b409b {assets/tools,lib{canvas,gui,roar,rtl,tools}}/*.py: fix formatting. 2019-09-23 19:21:06 +02:00
Lucio Andrés Illanes Albornoz
0843b7d330 Allow cancelling & setting object selection w/ <Esc>. 2019-09-23 19:19:43 +02:00
Lucio Andrés Illanes Albornoz
724b460be1 assets/images/roar.png: updated. 2019-09-23 19:02:15 +02:00
Lucio Andrés Illanes Albornoz
6fcac2b3b9 libroar/RoarCanvasCommands.py:update(): shorten {file,operator,tool} status bar items.
assets/text/TODO: updated.
2019-09-23 18:59:18 +02:00
Lucio Andrés Illanes Albornoz
f504fa2b76 Various bugfixes & usability improvements.
1)  Add background colour toolbar beneath (foreground) colour toolbar.
2)  Add colour flipping command w/ {accelerator,{menu,toolbar} item}.
3)  Add {de,in}crease {brush,canvas} size accelerator.
4)  Add {hide,show} assets window toolbar item.
5)  Circle tool: draw outline with foreground colour.
6)  Circle tool: honour transparency.
7)  Fill tool: change comprehensive fill modifier key from <Shift> to <Ctrl>.
8)  Fill tool: fill with {back,fore}ground colour given <[RL]MB>
9)  Fix arrow keys cursor motion when scrolled down.
10  Instantly reflect {brush size,colour,tool} changes in canvas.
11) Object tool: honour transparency w/ non-external objects.
12) Object tool: update selection rectangle during <LMB> whilst dragging, set w/ release of <LMB>.
13) Rectangle tool: draw outline with foreground colour.
14) Rectangle tool: honour transparency.
15) Replace wx.ToolBar() w/ wx.lib.agw.aui.AuiToolBar() & custom wx.lib.agw.aui.AuiDefaultToolBarArt().
16) Restore scrolling position after resizing canvas.

.TODO: deleted.
assets/audio/roar{arab8,spoke11}.wav: added.
assets/text/hotkeys.txt: added to document hotkeys.
assets/text/requirements.txt, requirements.txt: moved.
assets/text/TODO: updated.
{assets/tools,lib{canvas,gui,roar,rtl,tools}}/*.py: remove Vim fold markers.
libroar/RoarCanvasCommandsFile.py:_importFile(): update wx.FileDialog() message.
libroar/RoarCanvasCommandsOperators.py:canvasOperator(): update invert colours {caption,label}.
2019-09-23 18:49:33 +02:00
Lucio Andrés Illanes Albornoz
eb3795a98e Initial {rotate,tile} operator implementation. 2019-09-23 09:21:57 +02:00