Skip to content

Commit 054513e

Browse files
committed
working on new toolbars for the editor and the debugger
1 parent 4c5fbc9 commit 054513e

File tree

11 files changed

+1319
-384
lines changed

11 files changed

+1319
-384
lines changed

app/.settings/org.eclipse.jdt.core.prefs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annota
55
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
66
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
77
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
8-
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
8+
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
9+
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
910
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
10-
org.eclipse.jdt.core.compiler.compliance=1.6
11+
org.eclipse.jdt.core.compiler.compliance=1.7
1112
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
1213
org.eclipse.jdt.core.compiler.debug.localVariable=generate
1314
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -92,7 +93,7 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disa
9293
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
9394
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
9495
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
95-
org.eclipse.jdt.core.compiler.source=1.6
96+
org.eclipse.jdt.core.compiler.source=1.7
9697
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
9798
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=18
9899
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
Lines changed: 268 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,268 @@
1+
/* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2+
3+
/*
4+
Part of the Processing project - http://processing.org
5+
Copyright (c) 2015 The Processing Foundation
6+
7+
This program is free software; you can redistribute it and/or modify
8+
it under the terms of the GNU General Public License version 2
9+
as published by the Free Software Foundation.
10+
11+
This program is distributed in the hope that it will be useful,
12+
but WITHOUT ANY WARRANTY; without even the implied warranty of
13+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+
GNU General Public License for more details.
15+
16+
You should have received a copy of the GNU General Public License
17+
along with this program; if not, write to the Free Software Foundation, Inc.
18+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19+
*/
20+
21+
package processing.app;
22+
23+
import java.awt.*;
24+
import java.awt.event.*;
25+
26+
import javax.swing.*;
27+
28+
29+
abstract public class EditorButton extends JComponent
30+
implements MouseListener, MouseMotionListener, ActionListener {
31+
static public final int DIM = 46;
32+
33+
/** Button's description. */
34+
String title;
35+
/** Description of alternate behavior when shift is down. */
36+
String titleShift;
37+
38+
boolean pressed;
39+
boolean selected;
40+
boolean rollover;
41+
JLabel rolloverLabel;
42+
boolean shift;
43+
44+
// boolean enabled;
45+
// State state;
46+
// Map<State, Image> imageMap = new HashMap<>();
47+
48+
Image enabledImage;
49+
Image disabledImage;
50+
Image selectedImage;
51+
Image rolloverImage;
52+
Image pressedImage;
53+
54+
55+
public EditorButton(Mode mode, String name, String title) {
56+
this(mode, name, title, title);
57+
}
58+
59+
60+
public EditorButton(Mode mode, String name, String title, String titleShift) {
61+
this.title = title;
62+
this.titleShift = titleShift;
63+
64+
final int res = Toolkit.highResDisplay() ? 2 : 1;
65+
66+
disabledImage = mode.loadImage(name + "-enabled-" + res + "x.png");
67+
enabledImage = mode.loadImage(name + "-enabled-" + res + "x.png");
68+
selectedImage = mode.loadImage(name + "-enabled-" + res + "x.png");
69+
pressedImage = mode.loadImage(name + "-enabled-" + res + "x.png");
70+
rolloverImage = mode.loadImage(name + "-enabled-" + res + "x.png");
71+
72+
if (disabledImage == null) {
73+
disabledImage = enabledImage;
74+
}
75+
if (selectedImage == null) {
76+
selectedImage = enabledImage;
77+
}
78+
if (pressedImage == null) {
79+
pressedImage = enabledImage; // could be selected image
80+
}
81+
if (rolloverImage == null) {
82+
rolloverImage = enabledImage; // could be pressed image
83+
}
84+
}
85+
86+
87+
@Override
88+
public void paintComponent(Graphics g) {
89+
Image image = enabledImage;
90+
if (!isEnabled()) {
91+
image = disabledImage;
92+
} else if (selected) {
93+
image = selectedImage;
94+
} else if (pressed) {
95+
image = pressedImage;
96+
} else if (rollover) {
97+
image = rolloverImage;
98+
}
99+
g.drawImage(image, 0, 0, DIM, DIM, this);
100+
}
101+
102+
103+
// public String toString() {
104+
// switch (this) {
105+
// case DISABLED: return "disabled";
106+
// case ENABLED: return "enabled";
107+
// case SELECTED: return "selected";
108+
// case ROLLOVER: return "rollover";
109+
// case PRESSED: return "pressed";
110+
//
111+
//// for (State bs : State.values()) {
112+
//// Image image = mode.loadImage(bs.getFilename(name));
113+
//// if (image != null) {
114+
//// imageMap.put(bs, image);
115+
//// }
116+
//// }
117+
////
118+
//// enabled = true;
119+
//// //updateState();
120+
//// setState(State.ENABLED);
121+
// }
122+
123+
124+
public void setRolloverLabel(JLabel label) {
125+
rolloverLabel = label;
126+
}
127+
128+
129+
@Override
130+
public void mouseClicked(MouseEvent e) {
131+
if (isEnabled()) {
132+
shift = e.isShiftDown();
133+
actionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED,
134+
null, e.getModifiers()));
135+
}
136+
}
137+
138+
139+
public boolean isShiftDown() {
140+
return shift;
141+
}
142+
143+
144+
@Override
145+
public void mousePressed(MouseEvent e) {
146+
if (isEnabled()) {
147+
pressed = true;
148+
repaint();
149+
}
150+
}
151+
152+
153+
@Override
154+
public void mouseReleased(MouseEvent e) {
155+
if (isEnabled()) {
156+
pressed = false;
157+
repaint();
158+
}
159+
}
160+
161+
162+
@Override
163+
public void mouseEntered(MouseEvent e) {
164+
rollover = true;
165+
if (rolloverLabel != null) {
166+
rolloverLabel.setText(e.isShiftDown() ? titleShift : title);
167+
}
168+
repaint();
169+
}
170+
171+
172+
@Override
173+
public void mouseExited(MouseEvent e) {
174+
rollover = false;
175+
if (rolloverLabel != null) {
176+
rolloverLabel.setText("");
177+
}
178+
repaint();
179+
}
180+
181+
182+
@Override
183+
public void mouseDragged(MouseEvent e) { }
184+
185+
186+
@Override
187+
public void mouseMoved(MouseEvent e) { }
188+
189+
190+
abstract public void actionPerformed(ActionEvent e);
191+
192+
// @Override
193+
// public void actionPerformed(ActionEvent e) {
194+
// // To be overridden by all subclasses
195+
// }
196+
197+
198+
@Override
199+
public Dimension getPreferredSize() {
200+
return new Dimension(DIM, DIM);
201+
}
202+
203+
204+
@Override
205+
public Dimension getMinimumSize() {
206+
return getPreferredSize();
207+
}
208+
209+
210+
@Override
211+
public Dimension getMaximumSize() {
212+
return getPreferredSize();
213+
}
214+
215+
216+
// public Image getImage() {
217+
// return imageMap.get(state);
218+
// }
219+
//
220+
//
221+
//// protected void updateState() {
222+
//// state = ButtonState.ENABLED;
223+
//// }
224+
//
225+
//
226+
// public void setEnabled(boolean enabled) {
227+
// this.enabled = enabled;
228+
// if (enabled) {
229+
// if (state == State.DISABLED) {
230+
// setState(State.ENABLED);
231+
// }
232+
// } else {
233+
// if (state == State.ENABLED) {
234+
// setState(State.DISABLED);
235+
// }
236+
// }
237+
// }
238+
//
239+
//
240+
// public void setState(State state) {
241+
// this.state = state;
242+
// }
243+
244+
245+
// public enum State {
246+
// DISABLED, ENABLED, SELECTED, ROLLOVER, PRESSED;
247+
//
248+
// /**
249+
// * @param name the root name
250+
// * @return
251+
// */
252+
// public String getFilename(String name) {
253+
// final int res = Toolkit.highResDisplay() ? 2 : 1;
254+
// return name + "-" + toString() + "-" + res + "x.png";
255+
// }
256+
//
257+
// public String toString() {
258+
// switch (this) {
259+
// case DISABLED: return "disabled";
260+
// case ENABLED: return "enabled";
261+
// case SELECTED: return "selected";
262+
// case ROLLOVER: return "rollover";
263+
// case PRESSED: return "pressed";
264+
// }
265+
// return null;
266+
// }
267+
// }
268+
}

app/src/processing/app/EditorToolbar.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232

3333

3434
/**
35-
* run/stop/etc buttons for the ide
35+
* Run/Stop button plus Mode selection
3636
*/
3737
public abstract class EditorToolbar extends JComponent implements MouseInputListener, KeyListener {
3838

app/src/processing/app/Mode.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1194,8 +1194,17 @@ public ImageIcon loadIcon(String filename) {
11941194
* Get an image object from the mode folder.
11951195
*/
11961196
public Image loadImage(String filename) {
1197-
return loadIcon(filename).getImage();
1197+
ImageIcon icon = loadIcon(filename);
1198+
if (icon != null) {
1199+
return icon.getImage();
1200+
}
1201+
return null;
11981202
}
1203+
1204+
1205+
// public EditorButton loadButton(String name) {
1206+
// return new EditorButton(this, name);
1207+
// }
11991208

12001209

12011210
//public Settings getTheme() {
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
eclipse.preferences.version=1
2+
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3+
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
4+
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
5+
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
6+
org.eclipse.jdt.core.compiler.compliance=1.7
7+
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
8+
org.eclipse.jdt.core.compiler.debug.localVariable=generate
9+
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
10+
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
11+
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
12+
org.eclipse.jdt.core.compiler.source=1.7

0 commit comments

Comments
 (0)