class Menu{ ArrayList buttons; int selectedOption = 0; String name; int x; int y; int margin; boolean radiobutton; Menu(String name, int x, int y, int margin, boolean radiobutton){ this.name = name; this.x = x; this.y = y; this.margin = margin; this.radiobutton = radiobutton; buttons = new ArrayList(); } void drawMenu(){ int startx = x; for(int i = 0; i < buttons.size(); i++){ Button temp = (Button)buttons.get(i); temp.update(startx, y); startx = temp.x + temp.w + margin; } } void addRadioButton(String[] names){ for(int i = 0; i < names.length; i++){ buttons.add(new Button(names[i])); } } Button getButtonByName(String name){ for(int i = 0; i < buttons.size(); i++){ Button temp = (Button)buttons.get(i); if(temp.name.equals(name)){ return temp; } } return null; } void mouseMoved(){ for(int i = 0; i < buttons.size(); i++){ Button temp = (Button)buttons.get(i); temp.mouseMoved(); } } String mouseClicked() { String action = ""; for(int i = 0; i < buttons.size(); i++){ Button temp = (Button)buttons.get(i); if(temp.hover){ if(radiobutton){ for(int j = 0; j < buttons.size(); j++){ Button temp2 = (Button)buttons.get(j); temp2.selected = false; } temp.selected = true; } action = temp.name; } } return action; } void roundedRect(int x, int y, int w, int h, int r){ noStroke(); rect(x, y+r, w, h-(2*r)); rect(x+r, y, w-(2*r), h); ellipseMode(RADIUS); ellipse(x+r, y+r, r, r); ellipse(x+w-r, y+r, r, r); ellipse(x+w-r, y+h-r, r, r); ellipse(x+r, y+h-r, r, r); } }