diff --git a/controlsActionsWindows.pde b/controlsActionsWindows.pde index 877bb9f..169081b 100644 --- a/controlsActionsWindows.pde +++ b/controlsActionsWindows.pde @@ -43,101 +43,124 @@ void button_mode_serialPortDialog() { void button_mode_machineStoreDialog() { ControlFrameSimple cf = addMachineStoreControlFrame("Machine Store", 450, 250, 20, 240, color( 100 ) ); -// final MachineStoreWindow machineStoreWindow = new MachineStoreWindow(); } void button_mode_machineExecDialog() { ControlFrameSimple cf = addMachineExecControlFrame("Machine Execute", 450, 250, 20, 240, color( 100 ) ); -// final MachineExecWindow machineExecWindow = new MachineExecWindow(); } void button_mode_drawPixelsDialog() { ControlFrameSimple cf = addDrawPixelsControlFrame("Render pixels", 450, 250, 20, 240, color( 100 ) ); -// final DrawPixelsWindow drawPixelsWindow = new DrawPixelsWindow(); } void button_mode_drawWritingDialog() { - final DrawWritingWindow drawWritingWindow = new DrawWritingWindow(); + ControlFrameSimple cf = addSpriteWritingControlFrame("Sprite Writing", 450, 250, 20, 240, color( 100 ) ); +} + +void button_mode_drawNorwegianDialog() { + ControlFrameSimple cf = addNorwegianPixelControlFrame("Norwegian Pixel", 450, 250, 20, 240, color( 100 ) ); } ///*------------------------------------------------------------------------ // Details about the "writing" subwindow //------------------------------------------------------------------------*/ -String textToWrite = ""; -String spriteFilePrefix = "sprite/let"; -String spriteFileSuffix = ".txt"; -public class DrawWritingWindow extends ControlFrame { - public DrawWritingWindow() { - super(parentPapplet, 450, 250); - int xPos = 100; - int yPos = 100; - String name = DRAW_WRITING_WINDOW_NAME; - final Frame f = new Frame(name); - f.add(this); - this.init(); - f.setTitle(name); - f.setSize(super.w, super.h); - f.setLocation(xPos, yPos); - f.setResizable(false); - f.setVisible(true); +String spriteWriting_textToWrite = ""; +String spriteWriting_spriteFilePrefix = "sprite/let"; +String spriteWriting_spriteFileSuffix = ".txt"; - f.addWindowListener( new WindowAdapter() { - @Override - public void windowClosing(WindowEvent we) { - f.dispose(); - } +ControlFrameSimple addSpriteWritingControlFrame(String theName, int theWidth, int theHeight, int theX, int theY, int theColor ) { + final Frame f = new Frame( theName ); + final ControlFrameSimple p = new ControlFrameSimple( this, theWidth, theHeight, theColor ); + + f.add( p ); + p.init(); + f.setTitle(theName); + f.setSize( p.w, p.h ); + f.setLocation( theX, theY ); + f.addWindowListener( new WindowAdapter() { + @Override + public void windowClosing(WindowEvent we) { + p.dispose(); + f.dispose(); + cp5s.remove(DRAW_WRITING_WINDOW_NAME); } - ); - Textfield spriteFileField = cp5().addTextfield("spriteFilePrefixField", 20, 20, 150, 20) - .setText(getSpriteFilePrefix()) + } + ); + f.setResizable( true ); + f.setVisible( true ); + // sleep a little bit to allow p to call setup. + // otherwise a nullpointerexception might be caused. + try { + Thread.sleep( 100 ); + } + catch(Exception e) { + } + + cp5s.put(DRAW_WRITING_WINDOW_NAME, p.cp5()); + println(cp5s); + + // set up controls + Textfield spriteFileField = p.cp5().addTextfield("spriteWriting_spriteFilePrefixField", 20, 20, 150, 20) + .setText(spriteWriting_getSpriteFilePrefix()) .setLabel("File prefix") - .plugTo("spriteFilePrefixField"); + .plugTo(this, "spriteWriting_spriteFilePrefixField"); - Textfield writingField = cp5().addTextfield("textToWriteField", 20, 60, 400, 20) - .setText(getTextToWrite()) + Textfield writingField = p.cp5().addTextfield("spriteWriting_textToWriteField", 20, 60, 400, 20) + .setText(spriteWriting_getTextToWrite()) .setLabel("Text to write") - .plugTo("textToWriteField"); + .plugTo(this, "spriteWriting_textToWriteField"); - Button importTextButton = cp5().addButton("importTextButton", 0, 20, 100, 120, 20) + Button importTextButton = p.cp5().addButton("spriteWriting_importTextButton", 0, 20, 100, 120, 20) .setLabel("Load text from file") - .plugTo("importTextButton"); - - RadioButton rPos = cp5().addRadioButton("radio_drawWritingDirection", 20, 140); - // rPos.add("North-east", DRAW_DIR_NE); + .addListener( new ControlListener() { + public void controlEvent( ControlEvent ev ) { + spriteWriting_importTextButton(); + } + }); + + RadioButton rPos = p.cp5().addRadioButton("spriteWriting_radio_drawWritingDirection", 20, 140); rPos.add("South-east", DRAW_DIR_SE); - // rPos.add("South-west", DRAW_DIR_SW); - // rPos.add("North-west", DRAW_DIR_NW); - rPos.plugTo("radio_drawWritingDirection"); + rPos.activate("South-east"); + rPos.plugTo(this, "spriteWriting_radio_drawWritingDirection"); - Button submitButton = cp5.addButton("submitWritingWindow", 0, 300, 100, 120, 20) + Button submitButton = p.cp5.addButton("spriteWriting_submitWritingWindow", 0, 300, 100, 120, 20) .setLabel("Generate commands") - .plugTo("submitWritingWindow"); + .addListener( new ControlListener() { + public void controlEvent( ControlEvent ev ) { + spriteWriting_submitWritingWindow(p.cp5()); + } + }); + + + return p; +} + + + + void spriteWriting_spriteFilePrefixField(String value) { + spriteWriting_spriteFilePrefix = value; + } + void spriteWriting_textToWriteField(String value) { + spriteWriting_textToWrite = value; + } + String spriteWriting_getTextToWrite() { + return spriteWriting_textToWrite; + } + String spriteWriting_getSpriteFilePrefix() { + return spriteWriting_spriteFilePrefix; + } + String spriteWriting_getSpriteFileSuffix() { + return spriteWriting_spriteFileSuffix; } - void spriteFilePrefixField(String value) { - spriteFilePrefix = value; - } - void textToWriteField(String value) { - textToWrite = value; + void spriteWriting_importTextButton() { + println("Text being imported!"); + selectInput("Select the text file to load the text from:", + "spriteWriting_importTextToWriteFromFile"); } - String getTextToWrite() { - return textToWrite; - } - String getSpriteFilePrefix() { - return spriteFilePrefix; - } - String getSpriteFileSuffix() { - return spriteFileSuffix; - } - - void importTextButton() { - println("Text!"); - selectInput("Select the text file to load the text from:", "importTextToWriteFromFile", null, this); - } - - public void importTextToWriteFromFile(File selection) { + public void spriteWriting_importTextToWriteFromFile(File selection) { if (selection != null) { String fp = selection.getAbsolutePath(); println("Input file: " + fp); @@ -146,50 +169,47 @@ public class DrawWritingWindow extends ControlFrame { for (String row : rows) { sb.append(row); } - textToWriteField(sb.toString()); - println("Completed text import, " + getTextToWrite().length() + " characters found."); + spriteWriting_textToWriteField(sb.toString()); + println("Completed text import, " + spriteWriting_getTextToWrite().length() + " characters found."); - println("Text: " + getTextToWrite()); + println("Text: " + spriteWriting_getTextToWrite()); + + println(cp5s); - Textfield tf = cp5().get(Textfield.class, "textToWriteField"); - tf.setText(getTextToWrite()); - tf.submit(); + Textfield tf = cp5s.get(DRAW_WRITING_WINDOW_NAME).get(Textfield.class, "spriteWriting_textToWriteField"); + if (spriteWriting_getTextToWrite() != null + && !"".equals(spriteWriting_getTextToWrite().trim())) { + tf.setText(spriteWriting_getTextToWrite()); + tf.submit(); + tf.setText(spriteWriting_getTextToWrite()); + } } } - void submitWritingWindow(int theValue) + void spriteWriting_submitWritingWindow(ControlP5 parent) { println("Write."); - Textfield tf = cp5().get(Textfield.class, "spriteFilePrefixField"); + Textfield tf = parent.get(Textfield.class, "spriteWriting_spriteFilePrefixField"); tf.submit(); - tf.setText(getSpriteFilePrefix()); + tf.setText(spriteWriting_getSpriteFilePrefix()); - Textfield wf = cp5.get(Textfield.class, "textToWriteField"); + Textfield wf = parent.get(Textfield.class, "spriteWriting_textToWriteField"); wf.submit(); - wf.setText(getTextToWrite()); + wf.setText(spriteWriting_getTextToWrite()); println("Start dir: " + renderStartDirection); - println("Sprite file prefix: " + spriteFilePrefix); - println("Text: " + textToWrite); + println("Sprite file prefix: " + spriteWriting_spriteFilePrefix); + println("Text: " + spriteWriting_textToWrite); - for (int i=0; i buildControlNames() result.add(MODE_SELECT_ROVE_IMAGE_SOURCE); result.add(MODE_SEND_START_TEXT); result.add(MODE_SHOW_WRITING_DIALOG); - result.add(MODE_START_SWIRLING); - result.add(MODE_STOP_SWIRLING); - result.add(MODE_START_MARKING); - result.add(MODE_STOP_MARKING); +// result.add(MODE_START_SWIRLING); +// result.add(MODE_STOP_SWIRLING); +// result.add(MODE_START_MARKING); +// result.add(MODE_STOP_MARKING); result.add(MODE_START_SPRITE); result.add(MODE_START_RANDOM_SPRITES); result.add(MODE_STOP_RANDOM_SPRITES); diff --git a/polargraphcontroller.pde b/polargraphcontroller.pde index aa9f171..4d81a6a 100644 --- a/polargraphcontroller.pde +++ b/polargraphcontroller.pde @@ -59,6 +59,9 @@ int buildNo = 0; String programTitle = "Polargraph Controller v" + majorVersionNo + "." + minorVersionNo + " build " + buildNo; ControlP5 cp5; +Map cp5s = new HashMap(); + + boolean drawbotReady = false; boolean drawbotConnected = false;