/* Part of the Processing project - http://processing.org Copyright (c) 2010-11 Ben Fry and Casey Reas This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package processing.mode.java; import java.awt.Image; import java.awt.event.MouseEvent; import javax.swing.JPopupMenu; import processing.app.Base; import processing.app.Editor; import processing.app.EditorToolbar; public class JavaToolbar extends EditorToolbar { /** Rollover titles for each button. */ // static final String title[] = { // "Run", "Stop", "New", "Open", "Save", "Export" // }; /** Titles for each button when the shift key is pressed. */ // static final String titleShift[] = { // "Present", "Stop", "New Editor Window", "Open in Another Window", "Save", "Export to Application" // }; static protected final int RUN = 0; static protected final int STOP = 1; static protected final int NEW = 2; static protected final int OPEN = 3; static protected final int SAVE = 4; static protected final int EXPORT = 5; // JPopupMenu popup; // JMenu menu; public JavaToolbar(Editor editor, Base base) { super(editor, base); } public void init() { Image[][] images = loadImages(); for (int i = 0; i < 6; i++) { addButton(getTitle(i, false), getTitle(i, true), images[i], i == NEW); } } static public String getTitle(int index, boolean shift) { switch (index) { case RUN: return !shift ? "Run" : "Present"; case STOP: return "Stop"; case NEW: return "New"; case OPEN: return "Open"; case SAVE: return "Save"; // case EXPORT: return !shift ? "Export Application" : "Export Applet"; case EXPORT: return "Export Application"; } return null; } public void handlePressed(MouseEvent e, int sel) { boolean shift = e.isShiftDown(); JavaEditor jeditor = (JavaEditor) editor; switch (sel) { case RUN: if (shift) { jeditor.handlePresent(); } else { jeditor.handleRun(); } break; case STOP: jeditor.handleStop(); break; case OPEN: // popup = menu.getPopupMenu(); // TODO I think we need a longer chain of accessors here. JPopupMenu popup = editor.getMode().getToolbarMenu().getPopupMenu(); popup.show(this, e.getX(), e.getY()); break; case NEW: // if (shift) { base.handleNew(); // } else { // base.handleNewReplace(); // } break; case SAVE: jeditor.handleSave(false); break; case EXPORT: // if (shift) { // jeditor.handleExportApplet(); // } else { jeditor.handleExportApplication(); // } break; } } }