Skip to content

Commit bcc658e

Browse files
authored
Merge pull request RPTools#7 from Jaggeroth/PenPlay
Pen play
2 parents d667ed0 + d934fa1 commit bcc658e

File tree

14 files changed

+231
-122
lines changed

14 files changed

+231
-122
lines changed

src/main/java/net/rptools/lib/swing/ColorPicker.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import java.util.List;
2525

2626
import javax.swing.BorderFactory;
27+
import javax.swing.ImageIcon;
2728
import javax.swing.JFrame;
2829
import javax.swing.JPanel;
2930
import javax.swing.JSpinner;
@@ -40,11 +41,19 @@
4041
public class ColorPicker extends JPanel {
4142
private final JFrame owner;
4243

44+
private final ImageIcon eraserIcon = new ImageIcon(this.getClass().getResource("/net/rptools/lib/image/icons/eraser.png"));
45+
private final ImageIcon pencilIcon = new ImageIcon(this.getClass().getResource("/net/rptools/lib/image/icons/pencil.png"));
46+
private final ImageIcon roundCapIcon = new ImageIcon(this.getClass().getResource("/net/rptools/lib/image/icons/round_cap2.png"));
47+
private final ImageIcon squareCapIcon = new ImageIcon(this.getClass().getResource("/net/rptools/lib/image/icons/square_cap2.png"));
48+
private final ImageIcon snapToIcon = new ImageIcon(this.getClass().getResource("/net/rptools/lib/image/icons/shape_handles2.png"));
49+
private final ImageIcon freeDrawIcon = new ImageIcon(this.getClass().getResource("/net/rptools/lib/image/icons/freehand2.png"));
50+
4351
private final PaintedPanel foregroundColor;
4452
private final PaintedPanel backgroundColor;
4553
private final List<PaintedPanel> recentColors = new ArrayList<PaintedPanel>(16);
4654
private final JToggleButton snapToggle;
4755
private final JToggleButton eraseToggle;
56+
private final JToggleButton squareCapToggle;
4857
private final PaintChooser paintChooser;
4958
private final JSpinner penWidthSpinner;
5059
private final JSpinner transparencySpinner;
@@ -99,7 +108,16 @@ public ColorPicker(JFrame owner) {
99108
recentColors.add(paintedPanel);
100109
}
101110
snapToggle = (JToggleButton) panel.getButton("toggleSnapToGrid");
111+
snapToggle.setIcon(freeDrawIcon);
112+
snapToggle.setSelectedIcon(snapToIcon);
113+
102114
eraseToggle = (JToggleButton) panel.getButton("toggleErase");
115+
eraseToggle.setIcon(pencilIcon);
116+
eraseToggle.setSelectedIcon(eraserIcon);
117+
118+
squareCapToggle = (JToggleButton) panel.getButton("toggelSquareCap");
119+
squareCapToggle.setIcon(roundCapIcon);
120+
squareCapToggle.setSelectedIcon(squareCapIcon);
103121

104122
penWidthSpinner = panel.getSpinner("penWidth");
105123
penWidthSpinner.setModel(new SpinnerNumberModel(3, 1, maxPenWidth, 1));
@@ -173,6 +191,14 @@ public boolean isSnapSelected() {
173191
return snapToggle.isSelected();
174192
}
175193

194+
public boolean isSquareCapSelected() {
195+
return squareCapToggle.isSelected();
196+
}
197+
198+
public void setSquareCapSelected(boolean selected) {
199+
squareCapToggle.setSelected(selected);
200+
}
201+
176202
public void setTranslucency(int percent) {
177203
percent = Math.max(0, percent);
178204
percent = Math.min(100, percent);

src/main/java/net/rptools/lib/swing/PaintedPanel.java

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,17 @@
1717
import java.awt.Dimension;
1818
import java.awt.Graphics;
1919
import java.awt.Graphics2D;
20+
import java.awt.Image;
2021
import java.awt.Paint;
22+
import java.awt.Rectangle;
23+
import java.awt.TexturePaint;
24+
import java.awt.image.BufferedImage;
25+
import java.io.File;
26+
import java.io.IOException;
27+
import java.net.URL;
2128

29+
import javax.imageio.ImageIO;
30+
import javax.swing.ImageIcon;
2231
import javax.swing.JPanel;
2332

2433
@SuppressWarnings("serial")
@@ -56,10 +65,19 @@ protected void paintComponent(Graphics g) {
5665
((Graphics2D) g).setPaint(paint);
5766
g.fillRect(0, 0, size.width, size.height);
5867
} else {
59-
g.setColor(Color.white);
60-
g.fillRect(0, 0, size.width, size.height);
61-
g.setColor(Color.red);
62-
g.drawLine(size.width - 1, 0, 0, size.height - 1);
68+
try {
69+
BufferedImage texture;
70+
texture = ImageIO.read(getClass().getResource("/net/rptools/lib/image/icons/transparent2.png"));
71+
TexturePaint tp = new TexturePaint(texture, new Rectangle(0, 0, 28, 28));
72+
((Graphics2D) g).setPaint(tp);
73+
g.fillRect(0, 0, size.width, size.height);
74+
} catch (IOException e) {
75+
System.out.println(e.getMessage());
76+
g.setColor(Color.white);
77+
g.fillRect(0, 0, size.width, size.height);
78+
g.setColor(Color.red);
79+
g.drawLine(size.width - 1, 0, 0, size.height - 1);
80+
}
6381
}
6482
}
6583
}
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading

0 commit comments

Comments
 (0)