Commit Graph

16 Commits

Author SHA1 Message Date
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 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 279cca3313 Prompt to save changes on application exit. 2019-09-24 18:08:49 +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 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 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 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 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 df8ee6fedf Implements cursor tool & arrow keys navigation.
assets/images/toolCursor.png: added.
libroar/Roar{CanvasCommands{,Tools},Client}.py: adds cursor tool.
libroar/RoarCanvasWindow.py:applyTool(): dummy-handle cursor tool.
libroar/RoarCanvasWindow.py:onKeyboardInput(): update cursor position & cursor on {down,left,right,up} arrow key input.
assets/text/TODO: updated.
2019-09-15 21:33:19 +02:00
Lucio Andrés Illanes Albornoz a40017b607 Implements object tool operators context menu.
libgui/GuiFrame.py: _FUCK_ _YOU_ WXPYTHON
libroar/RoarCanvasCommandsOperators.py: I _FUCKING_ _HATE_ WXPYTHON
libroar/RoarCanvasWindow.py: DIE IN A DITCH WXPYTHON YOU ROTTING PILE OF FUCKING HIPPOPOTAMUS SHIT
libroar/RoarClient.py: I HATE WXPYTHON I HATE WXPYTHON I HATE WXPYTHON I HATE WXPYTHON I HATE WXPYTHON
2019-09-15 13:52:44 +02:00
Lucio Andrés Illanes Albornoz e2f413e4ba Implements merged object tool & flip operators.
assets/images/toolObject.png: added.
liboperators/Operator{,Flip{Horizontal,Vertical}}.py: initial implementation.
libroar/RoarCanvasCommands.py: adds RoarCanvasCommandsOperators.
libroar/RoarCanvasCommandsOperators.py: initial implementation.
libroar/Roar{CanvasCommands{,Tools},Client}.py: replaces ToolSelect{Clone,Move} w/ ToolObject.
libroar/RoarCanvasWindow.py:RoarCanvasWindowDropTarget.OnDropText(): update ToolObject() invocation.
libroar/RoarCanvasWindow.py:{applyTool,onMouseInput}(): pass keyModifiers to Tool.onMouseEvent().
libroar/RoarCanvasWindow.py:applyTool(): only switch back to lastTool if current object tool contains an external object.
libroar/RoarCanvasWindow.py:onLeaveWindow(): disable hiding cursor for now.
libtools/Tool{,Circle,Fill,Line,Rect,Text}.py:onMouseEvent(): update type signature.
libtools/Tool{Object,Select{,Clone,Move}}.py: merged into libtools/ToolObject.py.
roar.py: add liboperators to sys.path[].
assets/text/TODO: updated.
2019-09-15 11:06:25 +02:00
Lucio Andrés Illanes Albornoz b6c063c5d3 Initial implementation of assets window & external object tool.
libgui/GuiFrame.py:GuiMiniFrame(): added as sub-class of wx.MiniFrame().
libgui/GuiWindow.py:RoarCanvasWindowDropTarget(): initial implementation.
libgui/GuiWindow.py:__init__(): receive & pass optional style parameter.
libgui/GuiWindow.py:__init__(): set drop target.
libroar/RoarAssetsWindow.py: initial implementation.
libroar/RoarClient.py:__init__(): add RoarAssetsWindow().
libtools/ToolObject.py: initial implementation.
assets/text/TODO: updated.
2019-09-12 12:49:53 +02:00
Lucio Andrés Illanes Albornoz bb23efac56 libgui/GuiFrame.py:loadAccels(): obtain from {menu,Toolbar}s[].
libroar/RoarCanvasCommands{,Edit,File,Help,Tools}.py: remove self.accels[].
libroar/RoarClient.py: updated.
2019-09-10 12:28:26 +02:00
Lucio Andrés Illanes Albornoz f23101f511 libgui/GuiFrame.py: updated.
libroar/RoarCanvasCommands{,Edit,File,Help,Tools}.py: split from libroar/RoarCanvasInterface.py.
libroar/RoarCanvasWindow.py: updated.
libroar/RoarClient.py: updated.
libroar/RoarWindowAbout.py: renamed from libroar/RoarClientAboutWindow.py.
roar.py: updated.
2019-09-10 12:06:56 +02:00
Lucio Andrés Illanes Albornoz 01ca10be21 libroar/RoarCanvasInterface.py, libgui/GuiCanvasInterface.py: split from libgui/GuiCanvasInterface.py.
libroar/RoarClientAboutWindow.py: merged from libgui/GuiCanvasInterfaceAbout.py.
libgui/GuiFrame.py:Gui{Command{,List},Select}Decorator(): moved from libroar/RoarCanvasInterface.py.
libroar/RoarClient.py: updated.
2019-09-10 10:22:02 +02:00
Lucio Andrés Illanes Albornoz 8fd0294ef8 libroar/RoarClient.py, libgui/GuiFrame.py: split from libgui/GuiFrame.py.
libroar/RoarCanvasWindow.py, libgui/GuiWindow.py: split from libgui/GuiCanvasPanel.py.
roar.py: updated.
2019-09-10 10:14:12 +02:00