int buttonCount = 8; int i_buttonId; boolean menuOpen = true; int[] menuButtons = {2, 3, 4, 5, 6}; void menu() { menuOpen = !menuOpen; for (int i = 0; i < menuButtons.length; i++) { buttons[menuButtons[i]].active = menuOpen; } } void initButtons() { buttons[0] = new Button(72, 10, "Add Node"); buttons[1] = new Button(164, 10, "Delete Node"); buttons[2] = new Button(10, 50, "Dark/Bright Mode"); buttons[3] = new Button(10, 90, "Save"); buttons[4] = new Button(10, 130, "Open"); buttons[5] = new Button(10, 170, "Export Image"); buttons[6] = new Button(10, 210, "Empty Workspace"); buttons[7] = new Button(10, 10, "Menu"); menu(); /* buttons[0] = new Button(10, 10, "Node Hinzufügen"); buttons[1] = new Button(155, 10, "Löschen"); buttons[2] = new Button(10, 50, "Farben umkehren"); buttons[3] = new Button(10, 90, "Speichern"); buttons[4] = new Button(10, 130, "Öffnen"); buttons[5] = new Button(10, 170, "Bild Exportieren"); buttons[6] = new Button(10, 210, "Arbeitsfläche leeren"); buttons[7] = new Button(10, 210, "Menü");*/ } void buttonFunctions(int functionID) { switch (functionID) { case(0): addNode(int(random(50, width-50)), int(random(30, height-150)), ""); i_selectedNode = nodeCount-1; break; case(1): deleteSelectedNode(); break; case(2): darkMode = !darkMode; break; case(3): saveCSV(dataPath("save.csv")); selectOutput("Where to save .csv file to?", "saveCSVFile"); break; case(4): selectInput("Select csv File", "loadCSVFile"); break; case(5): selectOutput("Where to export .png image file to?", "savePNGFile"); break; case(6): deleteAll(); break; case(7): menu(); break; default: break; } } Button buttons[] = new Button[buttonCount]; class Button { int id, x, y, w, h; String label; boolean active; boolean hover() { return (active) ? ((mouseX > x && mouseX < x+w && mouseY > y && mouseY < y+h) ? true : false) : false; } void click() { buttonFunctions(id); } Button(int x_, int y_, String label_) { id = i_buttonId; i_buttonId++; x = x_; y = y_ ; label = label_; w = int(textWidth(label))+18; h = 32; active = true; } void display() { if (active) { stroke(0); strokeWeight(1); fill(255, 127); rect(x, y, w, h, 4); fill(0); text(label, x+9, y+h/2+5); } } }