Commit Graph

144 Commits

Author SHA1 Message Date
Lucio Andrés Illanes Albornoz
cd5ea1fab5 MiRCARTCanvas{,Journal,Store}.py: dispatch patches from tool event handlers directly.
MiRCARTTool{,Circle,Line,Rect,Text}.py: updated to new interface.
2018-01-10 00:35:08 +01:00
Lucio Andrés Illanes Albornoz
ed8ccab26f MiRCART{Canvas{,Backend},Frame}.py: replace MemoryDC() w/ BufferedDC(canvasBitmap). 2018-01-09 22:23:27 +01:00
Lucio Andrés Illanes Albornoz
2e014cd7ec MiRCARTCanvasBackend.py: only update device context brushes & pen if necessary. 2018-01-09 21:37:58 +01:00
Lucio Andrés Illanes Albornoz
dbf6c76930 MiRCARTGeneralFrame.py: prepend script execution directory when loading toolbar item bitmaps. 2018-01-09 21:21:04 +01:00
Lucio Andrés Illanes Albornoz
363a86fe81 MiRCARTCanvas.py: enable double buffering to eliminate brush flickering. 2018-01-09 05:07:04 +01:00
Lucio Andrés Illanes Albornoz
dec1e4c0d4 MiRCART.png: updates screenshot.
MiRCARTCanvas.py:onPanelKeyboardInput(): only handle {no,shift}-modifier keyboard events.
MiRCARTFrame.py: fix {de,in}crease canvas size accelerators (hotkeys.)
2018-01-09 04:17:24 +01:00
Lucio Andrés Illanes Albornoz
38e90f96ca Initial release w/ circle, line, rectangle, and text tools. 2018-01-09 03:56:40 +01:00
Lucio Andrés Illanes Albornoz
2a7f281d29 MiRCART{General,}Frame.py, assets/*.png: adds icons for tools.
MiRCART{Frame,ToolText}.py: initial implementation of Text tool.
2018-01-08 20:28:43 +01:00
Lucio Andrés Illanes Albornoz
f431adb381 MiRCART.png: updates screenshot. 2018-01-08 17:47:58 +01:00
Lucio Andrés Illanes Albornoz
195ddd9af8 MiRCART{Canvas,Frame}.py: adds circle & line tools.
MiRCARTTool{Circle,Line}.py: initial implementation.
2018-01-08 17:44:54 +01:00
Lucio Andrés Illanes Albornoz
9b5c9be88b MiRCARTFrame.py: adds <Ctrl>-<{+,-}> {in,de}crease brush size accelerators (hotkeys). 2018-01-08 02:56:08 +01:00
Lucio Andrés Illanes Albornoz
1099341b5d MiRCARTCanvas{,Journal}.py: fix {un,re}do regarding brush sizes >(1,1). 2018-01-08 02:45:03 +01:00
Lucio Andrés Illanes Albornoz
e7b7e05234 MiRCARTGeneralFrame.py, MiRCARTFrame.py: cleanup. 2018-01-08 01:43:54 +01:00
Lucio Andrés Illanes Albornoz
30f3688a2c MiRCARTFrame.py:MiRCARTFrame.onFrameCommand(): don't decrease brush size below (1,1).
MiRCARTFrame.py:MiRCARTFrame.onFrameCommand(): remove debugging print()s.
2018-01-08 01:18:52 +01:00
Lucio Andrés Illanes Albornoz
da82a543b5 MiRCARTCanvas.py: disable double buffering. 2018-01-08 01:11:00 +01:00
Lucio Andrés Illanes Albornoz
54adf3a95c MiRCART{CanvasJournal,Frame,ToolRect}.py: implements variable brush size. 2018-01-08 00:33:47 +01:00
Lucio Andrés Illanes Albornoz
6a4356568b MiRCARTFrame.py:MiRCARTFrame.canvas{Export{AsPng,Imgur,Pastebin},New,Open,Save}(): add wx.CURSOR_WAIT guards. 2018-01-08 00:05:10 +01:00
Lucio Andrés Illanes Albornoz
39babc71a4 MiRCART{CanvasStore,Frame}.py: implements export to Imgur (from bitmap via PNG.) 2018-01-08 00:05:10 +01:00
Lucio Andrés Illanes Albornoz
84ab4eee5a Initial release sans tools. 2018-01-08 00:05:03 +01:00
Lucio Andrés Illanes Albornoz
f6911293c3 MiRCARTFrame:MiRCARTFrame.TID_SELECT, [CM]ID_*: adds selectable item type.
MiRCARTFrame:MiRCARTFrame.{_initMenus,__init__}(): automatically set menu item initial state.
2018-01-07 15:20:27 +01:00
Lucio Andrés Illanes Albornoz
1c5f869c40 MiRCARTFrame.py: remove obsolete MiRCARTTo{Pastebin,PngFile} imports.
MiRCARTFrame.py:MiRCARTFrame.__init__(): initially disable (grey out) Copy, Cut, Delete, Paste, Export to Pastebin, and Export as PNG menu items.
2018-01-07 15:07:37 +01:00
Lucio Andrés Illanes Albornoz
3c28fa0071 MiRCARTCanvasStore.py: split & merge MiRCART{FromTextFile,ToPastebin,ToTextFile}.py. 2018-01-07 15:07:22 +01:00
Lucio Andrés Illanes Albornoz
115991736a MiRCART.py: hand off to MiRCARTFrame().
MiRCARTCanvas.py: split from MiRCART.py.
MiRCARTCanvasJournal.py: split from MiRCART.py.
MiRCARTColours.py: split from MiRCART.py.
MiRCARTFrame.py: split from MiRCART.py.
MiRCARTFromTextFile.py: initial implementation.
MiRCARTToPastebin.py: initial implementation.
MiRCARTToPngFile.py, IrcMiRCARTBot.py: renamed MiRC2png to MiRCARTToPngFile.
MiRCARTToTextFile.py: split from MiRCART.py.
MiRCARTTool.py: split from MiRCART.py.
MiRCARTToolRect.py: split from MiRCART.py.
README.md: updated.
2018-01-07 03:45:18 +01:00
Lucio Andrés Illanes Albornoz
0259662a4e IrcClient.py:IrcClient.connect(): explicitly pass encoding="utf-8" to clientSocket.makeFile(). 2018-01-06 16:40:20 +01:00
Lucio Andrés Illanes Albornoz
d93e1fecda MiRCART.py:MiRCARTCanvasJournal: split from MiRCARTCanvas. 2018-01-06 04:48:15 +01:00
Lucio Andrés Illanes Albornoz
fcc4215b68 {IrcClient,IrcMiRCARTBot,MiRC{2png,ART}}.py: fix spaces & typo. 2018-01-06 02:50:12 +01:00
Lucio Andrés Illanes Albornoz
968d07050e MiRCART.py:MiRCARTTool{,Rect}: cleaned up. 2018-01-06 02:46:46 +01:00
Lucio Andrés Illanes Albornoz
16065401e8 MiRCART.py:MiRCARTCanvas: cleaned up. 2018-01-06 02:42:26 +01:00
Lucio Andrés Illanes Albornoz
44e593714d {IrcClient,IrcMiRCARTBot.py,MiRC{2png,ART}}.py: include parameters in function header comments. 2018-01-06 01:44:45 +01:00
Lucio Andrés Illanes Albornoz
845185f9c3 MiRCART.py:MiRCARTFrame: cleaned up. 2018-01-06 01:23:48 +01:00
Lucio Andrés Illanes Albornoz
5350ebd881 README.md, MiRCART.png: added screenshot & WIP/pending cleanup tags. 2018-01-05 21:18:06 +01:00
Lucio Andrés Illanes Albornoz
61d53c818c MiRCART.py:MiRCARTFrame.__init__(): remove debugging print(). 2018-01-05 21:15:33 +01:00
Lucio Andrés Illanes Albornoz
703aa2c388 MiRCART.py:MiRCARTPalette, MiRCARTFrame.panelPalette: replaced w/ toolbar items.
MiRCART.py:MiRCARTFrame.toolBar*: added.
MiRCART.py:MiRCARTFrame.onToolColour{Bg,Fg}(): hand off to onPaletteEvent().
MiRCART.py:MiRCARTFrame.__init__(): create & initialise toolbar.
2018-01-05 20:45:21 +01:00
Lucio Andrés Illanes Albornoz
55381cf57b MiRCART.py:MiRCARTFrame.__init__(): update File menu titles to "Export to Pasteb&in..." and "Export as PN&G...". 2018-01-05 18:28:19 +01:00
Lucio Andrés Illanes Albornoz
28ae8f04f8 MiRCART.py:MiRCARTCanvas.{parentFrame,__init__()}: added for MiRCARTFrame.onCanvasUpdate().
MiRCART.py:MiRCARTCanvas._processMapPatches(): call parentFrame.onCanvasUpdate() given updates.
MiRCART.py:MiRCARTCanvas.{re,un}do(): call parentFrame.onCanvasUpdate() given {re,un}do.
MiRCART.py:MiRCARTFrame.onCanvasUpdate(): {dis,en}able menuEdit{Re,Un}do on updates.
2018-01-05 18:21:38 +01:00
Lucio Andrés Illanes Albornoz
813d49a3f2 MiRCART.py:MiRCARTFrame.__init__(): disable (grey out) menuEdit{Redo,Undo} initially. 2018-01-05 18:12:02 +01:00
Lucio Andrés Illanes Albornoz
c7fbe5b20c MiRCART.py:MiRCARTFrame.__init__(): change default appSize to (800, 600). 2018-01-05 18:09:25 +01:00
Lucio Andrés Illanes Albornoz
8215229f84 MiRCART.py:MiRCARTFrame: complete GUI skeleton. 2018-01-05 18:08:10 +01:00
Lucio Andrés Illanes Albornoz
133c4dc240 MiRCART.py:MiRCARTCanvas.patchesUndoLevel: added to track {un,re}do queue movement in both directions.
MiRCART.py:MiRCARTCanvas._processMapPatches(): remove {un,re}do queue items 0..patchesUndoLevel when updating queue.
MiRCART.py:MiRCARTCanvas._processMapPatches(): prepend to queue instead of appending.
MiRCART.py:MiRCARTCanvas._processMapPatches(): insert {un,re}do queue items as single (list) item each.
MiRCART.py:MiRCARTCanvas.redo(): decrement patchesUndoLevel & apply redo patch, if patchesUndoLevel > 0.
MiRCART.py:MiRCARTCanvas.undo(): apply undo patch & increment patchesUndoLevel, if patchesUndo[patchesUndoLevel] != None.
MiRCART.py:MiRCARTFrame.{menuFileRedo,onFileRedo(),__init__()}: adds `&Redo' File menu item w/ wx.ID_REDO.
MiRCART.py:MiRCARTFrame.{accelRedoId,onAccelRedo(),__init__()}: binds ^Y accelerator to MiRCARTCanvas.redo().
MiRCART.py: update title.
2018-01-05 17:21:14 +01:00
Lucio Andrés Illanes Albornoz
bcf52d8dc5 IrcMiRCARTBot.py, README.md:IrcMiRCARTBot.py: update title. 2018-01-05 17:05:58 +01:00
Lucio Andrés Illanes Albornoz
31d644515a README.md:MiRCART.py: add prerequisites for Windows & title. 2018-01-05 17:04:35 +01:00
Lucio Andrés Illanes Albornoz
ba99dc1280 MiRC2png.py:MiRC2png._syncColourSpecState(): handle empty mIRC colour control code sequences. 2018-01-05 16:48:50 +01:00
Lucio Andrés Illanes Albornoz
496e4c7a4b MiRCART.py:MiRCARTToolRect.__processMapPatches(): always obtain cell state from canvasMap.
MiRCART.py:MiRCARTToolRect._draw(): always paint w/ background colour given isRightDown.
2018-01-05 03:27:57 +01:00
Lucio Andrés Illanes Albornoz
8b6d7ab445 MiRCART.py:MiRCARTFrame.accel{UndoId,Table}: added.
MiRCART.py:MiRCARTFrame.onAccelUndo(): call self.panelCanvas.undo().
MiRCART.py:MiRCARTFrame.__init__(): create self.menuFileUndo w/ wx.ID_UNDO.
MiRCART.py:MiRCARTFrame.__init__(): bind ^Z accelerator to self.onAccelUndo().
2018-01-05 01:59:04 +01:00
Lucio Andrés Illanes Albornoz
423f923b4e MiRCART.py:MiRCARTCanvas._processMapPatches(): don't process patches that don't introduce changes..
MiRCART.py:MiRCARTCanvas._processMapPatches(): append redo and undo patches to self.patchesUndo.
MiRCART.py:MiRCARTCanvas.undo(): initial implementation.
MiRCART.py:MiRCARTFrame.{menuFileUndo,onFileUndo,__init__}(): add GUI for MiRCARTCanvas.undo().
2018-01-05 01:34:57 +01:00
Lucio Andrés Illanes Albornoz
7a891d9863 MiRCART.py:MiRCARTToolRect.onMouse{Down,Motion}(): remove debugging print()s. 2018-01-05 00:57:22 +01:00
Lucio Andrés Illanes Albornoz
68ba42f244 MiRC2png.py: fix mIRC colour control code sequence counting & rendering logic. 2018-01-05 00:52:02 +01:00
Lucio Andrés Illanes Albornoz
e0300331fd MiRC2png.py:MiRC2png._parseAs{Char,ColourSpec}(): fix indentation. 2018-01-04 23:45:30 +01:00
Lucio Andrés Illanes Albornoz
325a454db7 MiRCART.py:MiRCARTCanvas._eventPointToMap[XY](): added for _onMouseEvent().
MiRCART.py:MiRCARTCanvas._onMouseEvent(): split into _processMapPatches() and _drawPatch().
MiRCART.py:MiRCARTCanvas.getCell{Height,Width}(): added for _drawPatch() and _eventPointToMap[XY]().
MiRCART.py:MiRCARTCanvas.onPaletteEvent(): only set self.mirc[FB]g.
MiRCART.py:MiRCARTCanvas.__init__(): cache canvas window size.
MiRCART.py:MiRCARTCanvas.__init__(): initialise & append canvasTools.
MiRCART.py:MiRCARTCanvas.__init__(): pre-create 16 mIRC colour brushes & pens.
MiRCART.py:MiRCARTCanvas.__init__(): initialise temporary & {un,re}do patches.
MiRCART.py:MiRCARTTool: added abstract base class for all canvas tools.
MiRCART.py:MiRCARTToolRect: initial implementation w/ cursor, limited to 1x1 rectangles.
MiRCART.py:MiRCARTFrame.__init__(): initialise MiRCARTCanvas() w/ canvasTools=[MiRCARTToolRect].
2018-01-04 23:36:37 +01:00
Lucio Andrés Illanes Albornoz
91e33f8a4a MiRCART.py:MiRCARTCanvas.canvasBitmap: added to optimise onPaint().
MiRCART.py:MiRCARTCanvas._onMouseEvent(): additionally draw to canvasBitmap via temporary wx.MemoryDC().
MiRCART.py:MiRCARTCanvas.onPaint(): reimplement using (double-buffered) wx.BufferedPaintDC() from canvasBitmap.
MiRCART.py:MiRCARTCanvas.__init__(): initialise canvasBitmap from canvas window size.
2018-01-04 20:22:15 +01:00