From ad761d658e8aa5e4994dfa43622f9df076931da7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucio=20Andr=C3=A9s=20Illanes=20Albornoz?= Date: Wed, 10 Jan 2018 15:56:17 +0100 Subject: [PATCH] MiRCART{CanvasInterface,Frame}.py: adds clone & move (selection) tools. MiRCARTTool{Clone,Move}Select.py: initial implementation. assets/tool{Clone,Move}.png: added. MiRCART.png: updated. --- MiRCART.png | Bin 43602 -> 40512 bytes MiRCARTCanvasInterface.py | 12 ++++ MiRCARTFrame.py | 47 +++++++------- MiRCARTToolSelect.py | 129 ++++++++++++++++++++++++++++++++++++++ MiRCARTToolSelectClone.py | 60 ++++++++++++++++++ MiRCARTToolSelectMove.py | 61 ++++++++++++++++++ assets/toolClone.png | Bin 0 -> 287 bytes assets/toolMove.png | Bin 0 -> 303 bytes 8 files changed, 287 insertions(+), 22 deletions(-) create mode 100644 MiRCARTToolSelect.py create mode 100644 MiRCARTToolSelectClone.py create mode 100644 MiRCARTToolSelectMove.py create mode 100644 assets/toolClone.png create mode 100644 assets/toolMove.png diff --git a/MiRCART.png b/MiRCART.png index 8db9e9391678888bc477891c71e9622f2e83cb58..9150d4f92fc2b274ae376043593878c0cf8fe69d 100644 GIT binary patch literal 40512 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 literal 43602 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

F@dVhnL0yN8Bo0x&I=| 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 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# + +from MiRCARTTool import MiRCARTTool + +class MiRCARTToolSelect(MiRCARTTool): + """XXX""" + toolColours = toolRect = toolState = None + toolLastAtPoint = None + toolSelectMap = None + srcRect = None + + TS_NONE = 0 + TS_ORIGIN = 1 + TS_TARGET = 2 + + # {{{ _drawSelectRect(self, rect, dispatchFn, eventDc): XXX + def _drawSelectRect(self, rect, dispatchFn, eventDc): + rectFrame = [ \ + [rect[0][0]-1, rect[0][1]-1], \ + [rect[1][0]+1, rect[1][1]+1]] + if rectFrame[0][0] > rectFrame[1][0]: + rectFrame[0][0], rectFrame[1][0] = \ + rectFrame[1][0], rectFrame[0][0] + if rectFrame[0][1] > rectFrame[1][1]: + rectFrame[0][1], rectFrame[1][1] = \ + rectFrame[1][1], rectFrame[0][1] + curColours = [0, 0] + for rectX in range(rectFrame[0][0], rectFrame[1][0]+1): + if curColours == [0, 0]: + curColours = [1, 1] + else: + curColours = [0, 0] + dispatchFn(eventDc, True, \ + [[rectX, rectFrame[0][1]], curColours, 0, " "]) + dispatchFn(eventDc, True, \ + [[rectX, rectFrame[1][1]], curColours, 0, " "]) + for rectY in range(rectFrame[0][1], rectFrame[1][1]+1): + if curColours == [0, 0]: + curColours = [1, 1] + else: + curColours = [0, 0] + dispatchFn(eventDc, True, \ + [[rectFrame[0][0], rectY], curColours, 0, " "]) + dispatchFn(eventDc, True, \ + [[rectFrame[1][0], rectY], curColours, 0, " "]) + # }}} + + # + # onSelectEvent(self, event, atPoint, selectRect, brushColours, brushSize, isLeftDown, isRightDown, dispatchFn, eventDc): XXX + def onSelectEvent(self, event, atPoint, selectRect, brushColours, brushSize, isLeftDown, isRightDown, dispatchFn, eventDc): + pass + + # + # onMouseEvent(self, event, atPoint, brushColours, brushSize, isDragging, isLeftDown, isRightDown, dispatchFn, eventDc): XXX + def onMouseEvent(self, event, atPoint, brushColours, brushSize, isDragging, isLeftDown, isRightDown, dispatchFn, eventDc): + if self.toolState == self.TS_NONE: + if isLeftDown or isRightDown: + self.toolColours = [0, 1] + self.toolRect = [list(atPoint), []] + self.toolState = self.TS_ORIGIN + else: + dispatchFn(eventDc, True, \ + [list(atPoint), brushColours.copy(), 0, " "]) + elif self.toolState == self.TS_ORIGIN: + self.toolRect[1] = list(atPoint) + if isLeftDown or isRightDown: + if self.toolRect[0][0] > self.toolRect[1][0]: + self.toolRect[0][0], self.toolRect[1][0] = \ + self.toolRect[1][0], self.toolRect[0][0] + if self.toolRect[0][1] > self.toolRect[1][1]: + self.toolRect[0][1], self.toolRect[1][1] = \ + self.toolRect[1][1], self.toolRect[0][1] + self.srcRect = self.toolRect[0] + self.toolLastAtPoint = list(atPoint) + self.toolState = self.TS_TARGET + self.toolSelectMap = [] + for numRow in range((self.toolRect[1][1] - self.toolRect[0][1]) + 1): + self.toolSelectMap.append([]) + for numCol in range((self.toolRect[1][0] - self.toolRect[0][0]) + 1): + rectY = self.toolRect[0][1] + numRow + rectX = self.toolRect[0][0] + numCol + self.toolSelectMap[numRow].append( \ + self.parentCanvas.canvasMap[rectY][rectX]) + self._drawSelectRect(self.toolRect, dispatchFn, eventDc) + elif self.toolState == self.TS_TARGET: + if isRightDown: + self.onSelectEvent(event, atPoint, self.toolRect, \ + brushColours, brushSize, isLeftDown, isRightDown, \ + dispatchFn, eventDc) + self.toolColours = None + self.toolRect = None + self.toolState = self.TS_NONE + else: + self.onSelectEvent(event, atPoint, self.toolRect, \ + brushColours, brushSize, isLeftDown, isRightDown, \ + dispatchFn, eventDc) + + # __init__(self, *args): initialisation method + def __init__(self, *args): + super().__init__(*args) + self.toolColours = None + self.toolRect = None + self.toolState = self.TS_NONE + self.toolLastAtPoint = None + self.toolSelectMap = None + +# vim:expandtab foldmethod=marker sw=4 ts=4 tw=120 diff --git a/MiRCARTToolSelectClone.py b/MiRCARTToolSelectClone.py new file mode 100644 index 0000000..14c6024 --- /dev/null +++ b/MiRCARTToolSelectClone.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +# +# MiRCARTToolSelectClone.py -- XXX +# Copyright (c) 2018 Lucio Andrés Illanes Albornoz +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# + +from MiRCARTToolSelect import MiRCARTToolSelect + +class MiRCARTToolSelectClone(MiRCARTToolSelect): + """XXX""" + name = "Clone selection" + + # + # onSelectEvent(self, event, atPoint, selectRect, brushColours, brushSize, isLeftDown, isRightDown, dispatchFn, eventDc): XXX + def onSelectEvent(self, event, atPoint, selectRect, brushColours, brushSize, isLeftDown, isRightDown, dispatchFn, eventDc): + if isLeftDown: + atPoint = list(atPoint) + disp = [atPoint[0]-self.toolLastAtPoint[0], \ + atPoint[1]-self.toolLastAtPoint[1]] + self.toolLastAtPoint = atPoint + newToolRect = [ \ + [selectRect[0][0]+disp[0], selectRect[0][1]+disp[1]], \ + [selectRect[1][0]+disp[0], selectRect[1][1]+disp[1]]] + isCursor = True + elif isRightDown: + disp = [0, 0] + newToolRect = selectRect.copy() + isCursor = False + else: + disp = [0, 0] + newToolRect = selectRect.copy() + isCursor = True + for numRow in range(len(self.toolSelectMap)): + for numCol in range(len(self.toolSelectMap[numRow])): + cellOld = self.toolSelectMap[numRow][numCol] + rectY = selectRect[0][1] + numRow + rectX = selectRect[0][0] + numCol + dispatchFn(eventDc, isCursor, [[rectX+disp[0], rectY+disp[1]], *cellOld]) + self._drawSelectRect(newToolRect, dispatchFn, eventDc) + self.toolRect = newToolRect + +# vim:expandtab foldmethod=marker sw=4 ts=4 tw=120 diff --git a/MiRCARTToolSelectMove.py b/MiRCARTToolSelectMove.py new file mode 100644 index 0000000..520f4de --- /dev/null +++ b/MiRCARTToolSelectMove.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python3 +# +# MiRCARTToolSelectMove.py -- XXX +# Copyright (c) 2018 Lucio Andrés Illanes Albornoz +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# + +from MiRCARTToolSelect import MiRCARTToolSelect + +class MiRCARTToolSelectMove(MiRCARTToolSelect): + """XXX""" + name = "Move selection" + + # + # onSelectEvent(self, event, atPoint, selectRect, brushColours, brushSize, isLeftDown, isRightDown, dispatchFn, eventDc): XXX + def onSelectEvent(self, event, atPoint, selectRect, brushColours, brushSize, isLeftDown, isRightDown, dispatchFn, eventDc): + if isLeftDown: + atPoint = list(atPoint) + disp = [atPoint[0]-self.toolLastAtPoint[0], \ + atPoint[1]-self.toolLastAtPoint[1]] + self.toolLastAtPoint = atPoint + newToolRect = [ \ + [selectRect[0][0]+disp[0], selectRect[0][1]+disp[1]], \ + [selectRect[1][0]+disp[0], selectRect[1][1]+disp[1]]] + isCursor = True + elif isRightDown: + disp = [0, 0] + newToolRect = selectRect.copy() + isCursor = False + else: + disp = [0, 0] + newToolRect = selectRect.copy() + isCursor = True + for numRow in range(len(self.toolSelectMap)): + for numCol in range(len(self.toolSelectMap[numRow])): + cellOld = self.toolSelectMap[numRow][numCol] + rectY = selectRect[0][1] + numRow + rectX = selectRect[0][0] + numCol + dispatchFn(eventDc, isCursor, [[self.srcRect[0] + numCol, self.srcRect[1] + numRow], [1, 1], 0, " "]) + dispatchFn(eventDc, isCursor, [[rectX+disp[0], rectY+disp[1]], *cellOld]) + self._drawSelectRect(newToolRect, dispatchFn, eventDc) + self.toolRect = newToolRect + +# vim:expandtab foldmethod=marker sw=4 ts=4 tw=120 diff --git a/assets/toolClone.png b/assets/toolClone.png new file mode 100644 index 0000000000000000000000000000000000000000..fe6d1b5d9b26b85e9cbc688a3d77128343f6a5c2 GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=Dh+L6~vJ#O${~LCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33JwwYY*EXd970vN< zaSXBWUmA3q_pk$x*VTXNjqmmc9Y4V#emgz*%?@9Aj~5LM`#1F%{!5asJDgn5kiF+-Th(VuQv{7wJyBmlh6oOymp!;gTe~DWM4fy^C_; literal 0 HcmV?d00001 diff --git a/assets/toolMove.png b/assets/toolMove.png new file mode 100644 index 0000000000000000000000000000000000000000..cd6d372b6f3c97ca1319c4694c5fa4f2091c1887 GIT binary patch literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=Dh+L6~vJ#O${~LCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33JwwYY*EXd96|M1f zaSXBWUmE1ecgTT9o2k(C(V74IkBILme8A{D$8(K}Z>X5}HH*BQ(&%Fn^&3t1KfHD0 zVAlQ?g9dYJ{X>&qHhKi>s<+J*MqsO;T^lShc0mbP;fh;B}T7*ffDnv(|#Wk z)xXbNJj3GFOULEYmu`5bp{Bu8!Ty6waMQln1sukQYS`aZyQOz^-nrs@Z8no^TI2L1 vMj8JX&eIfTpT&CBe|O=J*0nz^kAGrIjoKXYspG9T(A^B4u6{1-oD!M