mirror of
https://github.com/lalbornoz/roar.git
synced 2024-11-26 08:56:36 +00:00
Implements erase tool.
assets/text/TODO: updated.
This commit is contained in:
parent
16ec68e845
commit
51498169e0
BIN
assets/images/toolErase.png
Normal file
BIN
assets/images/toolErase.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 278 B |
@ -21,10 +21,11 @@
|
|||||||
|
|
||||||
High-priority list:
|
High-priority list:
|
||||||
1) bug: a) select line tool b) set origin point c) move mouse about d) incr brush size e) set target point d) undo
|
1) bug: a) select line tool b) set origin point c) move mouse about d) incr brush size e) set target point d) undo
|
||||||
bug: a) new canvas/startup b) place rect c) move mouse d) undo status changes
|
2) bug: a) new canvas/startup b) place rect c) move mouse d) undo status changes
|
||||||
bug: a) text tool b) paste text c) undo
|
3) bug: a) start w/ spoke-vxplion.txt b) scroll down c) fix w/ canvas resize
|
||||||
2) bug: a) start w/ spoke-vxplion.txt b) scroll down c) fix w/ canvas resize
|
4) add hotkeys.txt mIRC art canvas to help menu
|
||||||
3) add hotkeys.txt mIRC art canvas to help menu
|
5) tools: pick colour, unicode block elements
|
||||||
4) tools: erase, pick, unicode block elements
|
6) bug: a) text tool b) paste text c) undo
|
||||||
|
7) bug: a) tile once b) tile twice
|
||||||
|
|
||||||
vim:ff=dos tw=0
|
vim:ff=dos tw=0
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<Ctrl> 0-9, <Ctrl> <Shift> 0-5, <Ctrl> <Shift> 6 Set foreground colour to #0-9, #10-15, transparent colour, resp.
|
<Ctrl> 0-9, <Ctrl> <Shift> 0-5, <Ctrl> <Shift> 6 Set foreground colour to #0-9, #10-15, transparent colour, resp.
|
||||||
<Ctrl> <Alt> 0-9, <Ctrl> <Alt> <Shift> 0-5, <Ctrl> <Alt> <Shift> 6 Set background colour to #0-9, #10-15, transparent colour, resp.
|
<Ctrl> <Alt> 0-9, <Ctrl> <Alt> <Shift> 0-5, <Ctrl> <Alt> <Shift> 6 Set background colour to #0-9, #10-15, transparent colour, resp.
|
||||||
<Ctrl> C, U, F, L, R, E, T Switch to circle, cursor, fill, line, rectangle, object, text tool
|
<Ctrl> C, U, E, F, L, R, E, T Switch to circle, cursor, erase, fill, line, rectangle, object, text tool
|
||||||
<Ctrl> I Flip colours
|
<Ctrl> I Flip colours
|
||||||
<Ctrl> N New canvas
|
<Ctrl> N New canvas
|
||||||
<Ctrl> O Open mIRC art file
|
<Ctrl> O Open mIRC art file
|
||||||
|
@ -129,7 +129,7 @@ class RoarCanvasCommands(RoarCanvasCommandsFile, RoarCanvasCommandsEdit, RoarCan
|
|||||||
self.canvasUndo, self.canvasRedo, NID_TOOLBAR_HSEP,
|
self.canvasUndo, self.canvasRedo, NID_TOOLBAR_HSEP,
|
||||||
self.canvasCut, self.canvasCopy, self.canvasPaste, self.canvasDelete, NID_TOOLBAR_HSEP,
|
self.canvasCut, self.canvasCopy, self.canvasPaste, self.canvasDelete, NID_TOOLBAR_HSEP,
|
||||||
self.canvasAssetsWindowHide, self.canvasAssetsWindowShow, NID_TOOLBAR_HSEP,
|
self.canvasAssetsWindowHide, self.canvasAssetsWindowShow, NID_TOOLBAR_HSEP,
|
||||||
self.canvasTool(self.canvasTool, 1), self.canvasTool(self.canvasTool, 5), self.canvasTool(self.canvasTool, 0), self.canvasTool(self.canvasTool, 2), self.canvasTool(self.canvasTool, 3), self.canvasTool(self.canvasTool, 6), self.canvasTool(self.canvasTool, 4),
|
self.canvasTool(self.canvasTool, 1), self.canvasTool(self.canvasTool, 6), self.canvasTool(self.canvasTool, 0), self.canvasTool(self.canvasTool, 3), self.canvasTool(self.canvasTool, 4), self.canvasTool(self.canvasTool, 7), self.canvasTool(self.canvasTool, 5), self.canvasTool(self.canvasTool, 2),
|
||||||
])
|
])
|
||||||
toolBars.append(
|
toolBars.append(
|
||||||
[self.canvasColour(self.canvasColour, 0), self.canvasColour(self.canvasColour, 1), self.canvasColour(self.canvasColour, 2), self.canvasColour(self.canvasColour, 3),
|
[self.canvasColour(self.canvasColour, 0), self.canvasColour(self.canvasColour, 1), self.canvasColour(self.canvasColour, 2), self.canvasColour(self.canvasColour, 3),
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
from GuiFrame import GuiSelectDecorator
|
from GuiFrame import GuiSelectDecorator
|
||||||
from ToolCircle import ToolCircle
|
from ToolCircle import ToolCircle
|
||||||
|
from ToolErase import ToolErase
|
||||||
from ToolFill import ToolFill
|
from ToolFill import ToolFill
|
||||||
from ToolLine import ToolLine
|
from ToolLine import ToolLine
|
||||||
from ToolObject import ToolObject
|
from ToolObject import ToolObject
|
||||||
@ -16,18 +17,19 @@ import wx
|
|||||||
class RoarCanvasCommandsTools():
|
class RoarCanvasCommandsTools():
|
||||||
@GuiSelectDecorator(0, "Circle", "&Circle", ["toolCircle.png"], [wx.ACCEL_CTRL, ord("C")], False)
|
@GuiSelectDecorator(0, "Circle", "&Circle", ["toolCircle.png"], [wx.ACCEL_CTRL, ord("C")], False)
|
||||||
@GuiSelectDecorator(1, "Cursor", "C&ursor", ["toolCursor.png"], [wx.ACCEL_CTRL, ord("U")], False)
|
@GuiSelectDecorator(1, "Cursor", "C&ursor", ["toolCursor.png"], [wx.ACCEL_CTRL, ord("U")], False)
|
||||||
@GuiSelectDecorator(2, "Fill", "&Fill", ["toolFill.png"], [wx.ACCEL_CTRL, ord("F")], False)
|
@GuiSelectDecorator(2, "Erase", "&Erase", ["toolErase.png"], [wx.ACCEL_CTRL, ord("A")], False)
|
||||||
@GuiSelectDecorator(3, "Line", "&Line", ["toolLine.png"], [wx.ACCEL_CTRL, ord("L")], False)
|
@GuiSelectDecorator(3, "Fill", "&Fill", ["toolFill.png"], [wx.ACCEL_CTRL, ord("F")], False)
|
||||||
@GuiSelectDecorator(4, "Object", "&Object", ["toolObject.png"], [wx.ACCEL_CTRL, ord("E")], False)
|
@GuiSelectDecorator(4, "Line", "&Line", ["toolLine.png"], [wx.ACCEL_CTRL, ord("L")], False)
|
||||||
@GuiSelectDecorator(5, "Rectangle", "&Rectangle", ["toolRect.png"], [wx.ACCEL_CTRL, ord("R")], True)
|
@GuiSelectDecorator(5, "Object", "&Object", ["toolObject.png"], [wx.ACCEL_CTRL, ord("E")], False)
|
||||||
@GuiSelectDecorator(6, "Text", "&Text", ["toolText.png"], [wx.ACCEL_CTRL, ord("T")], False)
|
@GuiSelectDecorator(6, "Rectangle", "&Rectangle", ["toolRect.png"], [wx.ACCEL_CTRL, ord("R")], True)
|
||||||
|
@GuiSelectDecorator(7, "Text", "&Text", ["toolText.png"], [wx.ACCEL_CTRL, ord("T")], False)
|
||||||
def canvasTool(self, f, idx):
|
def canvasTool(self, f, idx):
|
||||||
def canvasTool_(event):
|
def canvasTool_(event):
|
||||||
if (self.currentTool.__class__ == ToolObject) \
|
if (self.currentTool.__class__ == ToolObject) \
|
||||||
and (self.currentTool.toolState > self.currentTool.TS_NONE) \
|
and (self.currentTool.toolState > self.currentTool.TS_NONE) \
|
||||||
and self.currentTool.external:
|
and self.currentTool.external:
|
||||||
self.parentCanvas.dropTarget.done()
|
self.parentCanvas.dropTarget.done()
|
||||||
self.lastTool, self.currentTool = self.currentTool, [ToolCircle, None, ToolFill, ToolLine, ToolObject, ToolRect, ToolText][idx]
|
self.lastTool, self.currentTool = self.currentTool, [ToolCircle, None, ToolErase, ToolFill, ToolLine, ToolObject, ToolRect, ToolText][idx]
|
||||||
if self.currentTool != None:
|
if self.currentTool != None:
|
||||||
self.currentTool = self.currentTool()
|
self.currentTool = self.currentTool()
|
||||||
self.currentOperator, self.operatorState = None, None
|
self.currentOperator, self.operatorState = None, None
|
||||||
@ -51,7 +53,7 @@ class RoarCanvasCommandsTools():
|
|||||||
self.accels = ()
|
self.accels = ()
|
||||||
self.menus = (
|
self.menus = (
|
||||||
("&Tools",
|
("&Tools",
|
||||||
self.canvasTool(self.canvasTool, 1), self.canvasTool(self.canvasTool, 5), self.canvasTool(self.canvasTool, 0), self.canvasTool(self.canvasTool, 2), self.canvasTool(self.canvasTool, 3), self.canvasTool(self.canvasTool, 6), self.canvasTool(self.canvasTool, 4),
|
self.canvasTool(self.canvasTool, 1), self.canvasTool(self.canvasTool, 6), self.canvasTool(self.canvasTool, 0), self.canvasTool(self.canvasTool, 3), self.canvasTool(self.canvasTool, 4), self.canvasTool(self.canvasTool, 7), self.canvasTool(self.canvasTool, 5), self.canvasTool(self.canvasTool, 2),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
self.toolBars = ()
|
self.toolBars = ()
|
||||||
|
34
libtools/ToolErase.py
Normal file
34
libtools/ToolErase.py
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
#
|
||||||
|
# ToolErase.py
|
||||||
|
# Copyright (c) 2018, 2019 Lucio Andrés Illanes Albornoz <lucio@lucioillanes.de>
|
||||||
|
#
|
||||||
|
|
||||||
|
from Tool import Tool
|
||||||
|
|
||||||
|
class ToolErase(Tool):
|
||||||
|
name = "Erase"
|
||||||
|
|
||||||
|
#
|
||||||
|
# onMouseEvent(self, atPoint, brushColours, brushPos, brushSize, canvas, dispatchFn, eventDc, keyModifiers, mapPoint, mouseDragging, mouseLeftDown, mouseRightDown)
|
||||||
|
def onMouseEvent(self, atPoint, brushColours, brushPos, brushSize, canvas, dispatchFn, eventDc, keyModifiers, mapPoint, mouseDragging, mouseLeftDown, mouseRightDown):
|
||||||
|
brushColours, brushSize, dirty = list(brushColours), list(brushSize), False
|
||||||
|
if mouseRightDown:
|
||||||
|
brushColours = [brushColours[0], brushColours[0]]
|
||||||
|
else:
|
||||||
|
brushColours = [brushColours[1], brushColours[1]]
|
||||||
|
if brushSize[0] > 1:
|
||||||
|
brushSize[0] *= 2
|
||||||
|
for brushRow in range(brushSize[1]):
|
||||||
|
for brushCol in range(brushSize[0]):
|
||||||
|
patchColours = [brushColours[1]] * 2
|
||||||
|
patch = [mapPoint[0] + brushCol, mapPoint[1] + brushRow, *patchColours, 0, " "]
|
||||||
|
if mouseLeftDown or mouseRightDown:
|
||||||
|
if not dirty:
|
||||||
|
dirty = True
|
||||||
|
dispatchFn(eventDc, False, patch); dispatchFn(eventDc, True, patch);
|
||||||
|
else:
|
||||||
|
dispatchFn(eventDc, True, patch)
|
||||||
|
return True, dirty
|
||||||
|
|
||||||
|
# vim:expandtab foldmethod=marker sw=4 ts=4 tw=120
|
Loading…
Reference in New Issue
Block a user