X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=_Overlay.pde;h=06d106a255a4df53caaf2d484d0bb22196204c58;hb=2bae07c96a1b27bf4dc3cbe0082be5ae374fa0d9;hp=244b891d7d515e88416723966f755417f55119db;hpb=bf5511442e5c6d72a5ba2aa1df464734a93a23ef;p=SugarCubes.git diff --git a/_Overlay.pde b/_Overlay.pde index 244b891..06d106a 100644 --- a/_Overlay.pde +++ b/_Overlay.pde @@ -475,10 +475,13 @@ class MappingUI extends OverlayUI { private MappingTool mappingTool; private final String MAPPING_MODE_ALL = "All On"; + private final String MAPPING_MODE_CHANNEL = "Channel"; private final String MAPPING_MODE_SINGLE_CUBE = "Single Cube"; + private final String[] mappingModes = { MAPPING_MODE_ALL, - MAPPING_MODE_SINGLE_CUBE, + MAPPING_MODE_CHANNEL, + MAPPING_MODE_SINGLE_CUBE }; private final Method mappingModeStateMethod; @@ -505,11 +508,13 @@ class MappingUI extends OverlayUI { private int firstMappingY; private int firstCubeY; private int firstChannelY; + private int channelFieldY; private int cubeFieldY; private int stripFieldY; private boolean dragCube; private boolean dragStrip; + private boolean dragChannel; MappingUI(MappingTool mappingTool) { this.mappingTool = mappingTool; @@ -523,7 +528,14 @@ class MappingUI extends OverlayUI { } public int getMappingState(Object mappingMode) { - boolean active = (mappingMode == MAPPING_MODE_SINGLE_CUBE) == mappingTool.mappingModeSingleCube; + boolean active = false; + if (mappingMode == MAPPING_MODE_ALL) { + active = mappingTool.mappingMode == mappingTool.MAPPING_MODE_ALL; + } else if (mappingMode == MAPPING_MODE_CHANNEL) { + active = mappingTool.mappingMode == mappingTool.MAPPING_MODE_CHANNEL; + } else if (mappingMode == MAPPING_MODE_SINGLE_CUBE) { + active = mappingTool.mappingMode == mappingTool.MAPPING_MODE_SINGLE_CUBE; + } return active ? STATE_ACTIVE : STATE_DEFAULT; } @@ -565,6 +577,10 @@ class MappingUI extends OverlayUI { firstChannelY = yPos + lineHeight + 6; yPos = drawObjectList(yPos, "CHANNELS", channelModes, channelModes, channelModeStateMethod); yPos += sectionSpacing; + + channelFieldY = yPos + lineHeight + 6; + yPos = drawValueField(yPos, "CHANNEL ID", mappingTool.channelIndex + 1); + yPos += sectionSpacing; cubeFieldY = yPos + lineHeight + 6; yPos = drawValueField(yPos, "CUBE ID", glucose.model.getRawIndexForCube(mappingTool.cubeIndex)); @@ -598,7 +614,7 @@ class MappingUI extends OverlayUI { private int lastY; public void mousePressed() { - dragCube = dragStrip = false; + dragCube = dragStrip = dragChannel = false; lastY = mouseY; if (mouseY >= stripFieldY) { if (mouseY < stripFieldY + lineHeight) { @@ -608,6 +624,10 @@ class MappingUI extends OverlayUI { if (mouseY < cubeFieldY + lineHeight) { dragCube = true; } + } else if (mouseY >= channelFieldY) { + if (mouseY < channelFieldY + lineHeight) { + dragChannel = true; + } } else if (mouseY >= firstChannelY) { int index = objectClickIndex(firstChannelY); switch (index) { @@ -624,8 +644,10 @@ class MappingUI extends OverlayUI { } } else if (mouseY >= firstMappingY) { int index = objectClickIndex(firstMappingY); - if (index < 2) { - mappingTool.mappingModeSingleCube = (index > 0); + switch (index) { + case 0: mappingTool.mappingMode = mappingTool.MAPPING_MODE_ALL; break; + case 1: mappingTool.mappingMode = mappingTool.MAPPING_MODE_CHANNEL; break; + case 2: mappingTool.mappingMode = mappingTool.MAPPING_MODE_SINGLE_CUBE; break; } } } @@ -650,6 +672,12 @@ class MappingUI extends OverlayUI { } else { mappingTool.incStrip(); } + } else if (dragChannel) { + if (dy < 0) { + mappingTool.decChannel(); + } else { + mappingTool.incChannel(); + } } }