From 70eaae51bd015ff487b10498e15b6e91f17f6f64 Mon Sep 17 00:00:00 2001 From: Sandy Noble Date: Sun, 25 Oct 2015 01:29:40 +0100 Subject: [PATCH] Fixed problem where controllers placed outside of the window didn't work - thanks to https://github.com/sojamo/controlp5/issues/26 --- Panel.pde | 21 +++----- controlsSetup.pde | 25 ++++++--- polargraphcontroller.pde | 113 +++++++-------------------------------- 3 files changed, 42 insertions(+), 117 deletions(-) diff --git a/Panel.pde b/Panel.pde index 3039434..16484dc 100644 --- a/Panel.pde +++ b/Panel.pde @@ -24,7 +24,7 @@ sandy.noble@gmail.com http://www.polargraph.co.uk/ - http://code.google.com/p/polargraph/ + https://github.com/euphy/polargraphcontroller */ class Panel { @@ -120,9 +120,9 @@ class Panel public void draw() { - //stroke(outlineColour); - //strokeWeight(2); - //rect(getOutline().getLeft(), getOutline().getTop(), getOutline().getWidth(), getOutline().getHeight()); +// stroke(outlineColour); +// strokeWeight(2); +// rect(getOutline().getLeft(), getOutline().getTop(), getOutline().getWidth(), getOutline().getHeight()); drawControls(); } @@ -200,8 +200,9 @@ class Panel } } - void setHeight(float h) + void setSizeByHeight(float h) { +// println("Setting size for " + this.getName()); if (this.isResizable()) { if (h <= getMinimumHeight()) @@ -211,23 +212,15 @@ class Panel setControlPositions(buildControlPositionsForPanel(this)); float left = 0.0; - String controlName = ""; for (String key : getControlPositions().keySet()) { PVector pos = getControlPositions().get(key); - if (pos.x >= left) + if (pos.x > left) { left = pos.x; - controlName = key; } } - - Map map = getControlSizes(); - -// PVector size = getControlSizes().get(controlName); -// println("size: " + size); float right = left + DEFAULT_CONTROL_SIZE.x; - this.getOutline().setWidth(right); } } diff --git a/controlsSetup.pde b/controlsSetup.pde index e2d4462..d79ec88 100644 --- a/controlsSetup.pde +++ b/controlsSetup.pde @@ -95,9 +95,9 @@ Map buildPanels() { Map panels = new HashMap(); float panelHeight = frame.getHeight() - getMainPanelPosition().y - (DEFAULT_CONTROL_SIZE.y*3); - Rectangle panelOutline = new Rectangle(getMainPanelPosition(), + Rectangle panelOutlineInput = new Rectangle(getMainPanelPosition(), new PVector((DEFAULT_CONTROL_SIZE.x+CONTROL_SPACING.x)*2, panelHeight)); - Panel inputPanel = new Panel(PANEL_NAME_INPUT, panelOutline); + Panel inputPanel = new Panel(PANEL_NAME_INPUT, panelOutlineInput); inputPanel.setResizable(true); inputPanel.setOutlineColour(color(200, 200, 200)); // get controls @@ -107,7 +107,9 @@ Map buildPanels() { inputPanel.setControlSizes(buildControlSizesForPanel(inputPanel)); panels.put(PANEL_NAME_INPUT, inputPanel); - Panel rovingPanel = new Panel(PANEL_NAME_ROVING, panelOutline); + Rectangle panelOutlineRoving = new Rectangle(getMainPanelPosition(), + new PVector((DEFAULT_CONTROL_SIZE.x+CONTROL_SPACING.x)*2, panelHeight)); + Panel rovingPanel = new Panel(PANEL_NAME_ROVING, panelOutlineRoving); rovingPanel.setOutlineColour(color(100,200,200)); // get controls rovingPanel.setResizable(true); @@ -117,7 +119,9 @@ Map buildPanels() { rovingPanel.setControlSizes(buildControlSizesForPanel(rovingPanel)); panels.put(PANEL_NAME_ROVING, rovingPanel); - Panel tracePanel = new Panel(PANEL_NAME_TRACE, panelOutline); + Rectangle panelOutlineTrace = new Rectangle(getMainPanelPosition(), + new PVector((DEFAULT_CONTROL_SIZE.x+CONTROL_SPACING.x)*2, panelHeight)); + Panel tracePanel = new Panel(PANEL_NAME_TRACE, panelOutlineTrace); tracePanel.setOutlineColour(color(200,255,200)); // get controls tracePanel.setResizable(true); @@ -127,7 +131,9 @@ Map buildPanels() { tracePanel.setControlSizes(buildControlSizesForPanel(tracePanel)); panels.put(PANEL_NAME_TRACE, tracePanel); - Panel detailsPanel = new Panel(PANEL_NAME_DETAILS, panelOutline); + Rectangle panelOutlineDetails = new Rectangle(getMainPanelPosition(), + new PVector((DEFAULT_CONTROL_SIZE.x+CONTROL_SPACING.x)*2, panelHeight)); + Panel detailsPanel = new Panel(PANEL_NAME_DETAILS, panelOutlineDetails); detailsPanel.setOutlineColour(color(200, 200, 255)); // get controls detailsPanel.setResizable(true); @@ -137,7 +143,9 @@ Map buildPanels() { detailsPanel.setControlSizes(buildControlSizesForPanel(detailsPanel)); panels.put(PANEL_NAME_DETAILS, detailsPanel); - Panel queuePanel = new Panel(PANEL_NAME_QUEUE, panelOutline); + Rectangle panelOutlineQueue = new Rectangle(getMainPanelPosition(), + new PVector((DEFAULT_CONTROL_SIZE.x+CONTROL_SPACING.x)*2, panelHeight)); + Panel queuePanel = new Panel(PANEL_NAME_QUEUE, panelOutlineQueue); queuePanel.setOutlineColour(color(200, 200, 50)); // get controls queuePanel.setResizable(true); @@ -147,10 +155,10 @@ Map buildPanels() { queuePanel.setControlSizes(buildControlSizesForPanel(queuePanel)); panels.put(PANEL_NAME_QUEUE, queuePanel); - panelOutline = new Rectangle( + Rectangle panelOutlineGeneral = new Rectangle( new PVector(getMainPanelPosition().x, getMainPanelPosition().y-((DEFAULT_CONTROL_SIZE.y+CONTROL_SPACING.y)*2)), new PVector((DEFAULT_CONTROL_SIZE.x+CONTROL_SPACING.x)*2, (DEFAULT_CONTROL_SIZE.y+CONTROL_SPACING.y)*2)); - Panel generalPanel = new Panel(PANEL_NAME_GENERAL, panelOutline); + Panel generalPanel = new Panel(PANEL_NAME_GENERAL, panelOutlineGeneral); generalPanel.setResizable(false); generalPanel.setOutlineColour(color(200, 50, 200)); // get controls @@ -568,6 +576,7 @@ Map buildControlPositionsForPanel(Panel panel) int row = 0; for (Controller controller : panel.getControls()) { + if (controller.getName().startsWith("minitoggle_")) { PVector p = new PVector(col*(DEFAULT_CONTROL_SIZE.x+CONTROL_SPACING.x), row*(DEFAULT_CONTROL_SIZE.y+CONTROL_SPACING.y)); diff --git a/polargraphcontroller.pde b/polargraphcontroller.pde index 4afca70..3a69e66 100644 --- a/polargraphcontroller.pde +++ b/polargraphcontroller.pde @@ -528,6 +528,7 @@ static PApplet parentPapplet = null; void setup() { + size(windowWidth, windowHeight); println("Running polargraph controller"); frame.setResizable(true); initLogging(); @@ -545,11 +546,7 @@ void setup() e.printStackTrace(); } loadFromPropertiesFile(); - -// size(400, 400, JAVA2D ); -// surface.setResizable(true); -// surface.setSize(windowWidth, windowHeight); - size(windowWidth, windowHeight, JAVA2D); + this.cp5 = new ControlP5(this); initTabs(); @@ -635,57 +632,50 @@ void preLoadCommandQueue() void windowResized() { + println("Window resized."); windowWidth = frame.getWidth(); windowHeight = frame.getHeight(); + for (String key : getPanels().keySet()) { + println("Panel: " + key); Panel p = getPanels().get(key); - p.setHeight(frame.getHeight() - p.getOutline().getTop() - (DEFAULT_CONTROL_SIZE.y*2)); + p.setSizeByHeight(frame.getHeight() - p.getOutline().getTop() - (DEFAULT_CONTROL_SIZE.y*2)); } - + cp5.setGraphics(this,0,0); } void draw() { - if (getCurrentTab() == TAB_NAME_INPUT) - { + if (getCurrentTab() == TAB_NAME_INPUT) { drawImagePage(); } - else if (getCurrentTab() == TAB_NAME_QUEUE) - { + else if (getCurrentTab() == TAB_NAME_QUEUE) { drawCommandQueuePage(); } - else if (getCurrentTab() == TAB_NAME_DETAILS) - { + else if (getCurrentTab() == TAB_NAME_DETAILS) { drawDetailsPage(); } - else if (getCurrentTab() == TAB_NAME_ROVING) - { + else if (getCurrentTab() == TAB_NAME_ROVING) { drawRovingPage(); } - else if (getCurrentTab() == TAB_NAME_TRACE) - { + else if (getCurrentTab() == TAB_NAME_TRACE) { drawTracePage(); } - else - { + else { drawDetailsPage(); } - - if (isShowingSummaryOverlay()) - { + if (isShowingSummaryOverlay()) { drawSummaryOverlay(); } - if (isShowingDialogBox()) - { + + if (isShowingDialogBox()) { drawDialogBox(); } - if (drawbotReady) - { + if (drawbotReady) { dispatchCommandQueue(); } - } String getCurrentTab() @@ -1640,10 +1630,6 @@ void keyPressed() getDisplayMachine().getOffset().x = getDisplayMachine().getOffset().x - 10; else if (checkKey(KeyEvent.VK_ESCAPE)) key = 0; - -// if (checkKey(CONTROL) && checkKey(KeyEvent.VK_G)) -// println("CTRL+G"); - else if (checkKey(CONTROL) && checkKey(KeyEvent.VK_G)) { Toggle t = (Toggle) getAllControls().get(MODE_SHOW_GUIDES); @@ -1677,60 +1663,6 @@ void keyPressed() { displayingInfoTextOnInputPage = (displayingInfoTextOnInputPage) ? false : true; } -// else if (key == '+') -// { -// currentMachineMaxSpeed = currentMachineMaxSpeed+MACHINE_MAXSPEED_INCREMENT; -// currentMachineMaxSpeed = Math.round(currentMachineMaxSpeed*100.0)/100.0; -// NumberFormat nf = NumberFormat.getNumberInstance(Locale.UK); -// DecimalFormat df = (DecimalFormat)nf; -// df.applyPattern("###.##"); -// addToRealtimeCommandQueue(CMD_SETMOTORSPEED+df.format(currentMachineMaxSpeed)+",END"); -// } -// else if (key == '-') -// { -// currentMachineMaxSpeed = currentMachineMaxSpeed+(0.0 - MACHINE_MAXSPEED_INCREMENT); -// currentMachineMaxSpeed = Math.round(currentMachineMaxSpeed*100.0)/100.0; -// NumberFormat nf = NumberFormat.getNumberInstance(Locale.UK); -// DecimalFormat df = (DecimalFormat)nf; -// df.applyPattern("###.##"); -// addToRealtimeCommandQueue(CMD_SETMOTORSPEED+df.format(currentMachineMaxSpeed)+",END"); -// } -// else if (key == '*') -// { -// currentMachineAccel = currentMachineAccel+MACHINE_ACCEL_INCREMENT; -// currentMachineAccel = Math.round(currentMachineAccel*100.0)/100.0; -// NumberFormat nf = NumberFormat.getNumberInstance(Locale.UK); -// DecimalFormat df = (DecimalFormat)nf; -// df.applyPattern("###.##"); -// addToRealtimeCommandQueue(CMD_SETMOTORACCEL+df.format(currentMachineAccel)+",END"); -// } -// else if (key == '/') -// { -// currentMachineAccel = currentMachineAccel+(0.0 - MACHINE_ACCEL_INCREMENT); -// currentMachineAccel = Math.round(currentMachineAccel*100.0)/100.0; -// NumberFormat nf = NumberFormat.getNumberInstance(Locale.UK); -// DecimalFormat df = (DecimalFormat)nf; -// df.applyPattern("###.##"); -// addToRealtimeCommandQueue(CMD_SETMOTORACCEL+df.format(currentMachineAccel)+",END"); -// } -// else if (key == ']') -// { -// currentPenWidth = currentPenWidth+penIncrement; -// currentPenWidth = Math.round(currentPenWidth*100.0)/100.0; -// NumberFormat nf = NumberFormat.getNumberInstance(Locale.UK); -// DecimalFormat df = (DecimalFormat)nf; -// df.applyPattern("###.##"); -// addToRealtimeCommandQueue(CMD_CHANGEPENWIDTH+df.format(currentPenWidth)+",END"); -// } -// else if (key == '[') -// { -// currentPenWidth = currentPenWidth-penIncrement; -// currentPenWidth = Math.round(currentPenWidth*100.0)/100.0; -// NumberFormat nf = NumberFormat.getNumberInstance(Locale.UK); -// DecimalFormat df = (DecimalFormat)nf; -// df.applyPattern("###.##"); -// addToRealtimeCommandQueue(CMD_CHANGEPENWIDTH+df.format(currentPenWidth)+",END"); -// } else if (key == '#' ) { addToRealtimeCommandQueue(CMD_PENUP+"END"); @@ -1748,15 +1680,6 @@ void keyPressed() { this.maxSegmentLength++; } -// else if (key == ',') -// { -// if (this.minimumVectorLineLength > 0) -// this.minimumVectorLineLength--; -// } -// else if (key == '.') -// { -// this.minimumVectorLineLength++; -// } } void mouseDragged() { @@ -1782,7 +1705,7 @@ void mouseClicked() { if (mouseOverPanel()) { // changing mode -// panelClicked(); + } else {