annotate game/IDMWidget.java @ 171:5070e57ebbfc

Move text drawing stuff to IDMWidget class.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 06 Mar 2017 10:19:04 +0200
parents b9bc493ae53c
children 55ea5821c802
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
49
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
1 /*
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
2 * Ristipolku IDM base widget
151
d6d92845d6a2 ISO-8859-1 -> UTF-8.
Matti Hamalainen <ccr@tnsp.org>
parents: 134
diff changeset
3 * (C) Copyright 2011 Matti 'ccr' Hämäläinen <ccr@tnsp.org>
49
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
4 */
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
5 package game;
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
6
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
7 import java.awt.*;
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
8 import java.awt.event.*;
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
9
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
10
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
11 public class IDMWidget
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
12 {
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
13 IDMWidget parent;
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
14 IDMPoint pos, size, scale;
49
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
15 int keyCode;
134
4c0dec72e2f0 Whitespace cosmetic cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 75
diff changeset
16
171
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
17 IDMPoint textCurrPos, textCurrOffs;
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
18 Paint textPaint;
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
19 Font textFont;
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
20 FontMetrics textMetrics;
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
21
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
22
49
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
23 public IDMWidget()
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
24 {
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
25 keyCode = -1;
51
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
26 this.scale = new IDMPoint(1, 1);
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
27 this.pos = new IDMPoint(0, 0);
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
28 this.size = new IDMPoint(0, 0);
51
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
29 }
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
30
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
31 public IDMWidget(IDMPoint pos)
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
32 {
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
33 this();
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
34 this.pos = pos;
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
35 }
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
36
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
37 public IDMWidget(IDMPoint pos, IDMPoint size)
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
38 {
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
39 this();
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
40 this.pos = pos;
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
41 this.size = size;
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
42 }
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
43
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
44 public void setParent(IDMWidget par)
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
45 {
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
46 this.parent = par;
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
47 }
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
48
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
49 public void add(IDMWidget widget)
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
50 {
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
51 }
134
4c0dec72e2f0 Whitespace cosmetic cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 75
diff changeset
52
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
53 public void remove(IDMWidget widget)
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
54 {
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
55 }
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
56
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
57 public void setPos(IDMPoint pos)
51
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
58 {
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
59 this.pos = pos;
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
60 }
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
61
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
62 public void setPos(float x, float y)
51
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
63 {
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
64 this.pos = new IDMPoint(x, y);
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
65 }
134
4c0dec72e2f0 Whitespace cosmetic cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 75
diff changeset
66
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
67 public void setSize(IDMPoint size)
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
68 {
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
69 this.size = size;
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
70 }
134
4c0dec72e2f0 Whitespace cosmetic cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 75
diff changeset
71
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
72 public void setSize(float w, float h)
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
73 {
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
74 this.size = new IDMPoint(w, h);
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
75 }
51
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
76
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
77 public void setScale(IDMPoint scale)
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
78 {
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
79 this.scale = scale;
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
80 }
134
4c0dec72e2f0 Whitespace cosmetic cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 75
diff changeset
81
51
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
82 public void setScale(float x, float y)
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
83 {
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
84 this.setScale(new IDMPoint(x, y));
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
85 }
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
86
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
87 public int getScaledX()
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
88 {
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
89 return (int) (pos.x * scale.x);
51
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
90 }
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
91
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
92 public int getScaledY()
f81f76458b92 Work on widgets.
Matti Hamalainen <ccr@tnsp.org>
parents: 50
diff changeset
93 {
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
94 return (int) (pos.y * scale.y);
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
95 }
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
96
170
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
97 public int getScaledX(float x)
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
98 {
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
99 return (int) (x * scale.x);
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
100 }
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
101
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
102 public int getScaledY(float y)
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
103 {
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
104 return (int) (y * scale.y);
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
105 }
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
106
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
107 public int getScaledRelX(float x)
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
108 {
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
109 return (int) ((pos.x + x) * scale.x);
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
110 }
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
111
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
112 public int getScaledRelY(float y)
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
113 {
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
114 return (int) ((pos.y + y) * scale.y);
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
115 }
b9bc493ae53c Modularize and clean up code.
Matti Hamalainen <ccr@tnsp.org>
parents: 162
diff changeset
116
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
117 public int getScaledWidth()
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
118 {
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
119 return (int) (size.x * scale.x);
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
120 }
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
121
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
122 public int getScaledHeight()
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
123 {
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
124 return (int) (size.y * scale.y);
49
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
125 }
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
126
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
127 public boolean contains(float x, float y)
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
128 {
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
129 return (x >= getScaledX() &&
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
130 y >= getScaledY() &&
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
131 x < getScaledX() + getScaledWidth() &&
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
132 y < getScaledY() + getScaledHeight());
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
133 }
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
134
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
135 public boolean contains(Point where)
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
136 {
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
137 return contains(where.x, where.y);
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
138 }
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
139
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
140 public boolean contains(IDMPoint where)
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
141 {
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
142 return contains(where.x, where.y);
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
143 }
134
4c0dec72e2f0 Whitespace cosmetic cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 75
diff changeset
144
49
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
145 public void paint(Graphics2D g)
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
146 {
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
147 }
134
4c0dec72e2f0 Whitespace cosmetic cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 75
diff changeset
148
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
149 public boolean mousePressed(MouseEvent e)
49
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
150 {
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
151 return false;
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
152 }
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
153
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
154 public boolean mouseReleased(MouseEvent e)
49
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
155 {
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
156 if (contains(e.getPoint()))
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
157 {
49
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
158 clicked();
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
159 return true;
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
160 }
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
161 return false;
50
496e616ff09d More work on IDMgui.
Matti Hamalainen <ccr@tnsp.org>
parents: 49
diff changeset
162 }
496e616ff09d More work on IDMgui.
Matti Hamalainen <ccr@tnsp.org>
parents: 49
diff changeset
163
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
164 public boolean mouseEntered(MouseEvent e)
50
496e616ff09d More work on IDMgui.
Matti Hamalainen <ccr@tnsp.org>
parents: 49
diff changeset
165 {
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
166 return false;
50
496e616ff09d More work on IDMgui.
Matti Hamalainen <ccr@tnsp.org>
parents: 49
diff changeset
167 }
496e616ff09d More work on IDMgui.
Matti Hamalainen <ccr@tnsp.org>
parents: 49
diff changeset
168
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
169 public boolean mouseExited(MouseEvent e)
50
496e616ff09d More work on IDMgui.
Matti Hamalainen <ccr@tnsp.org>
parents: 49
diff changeset
170 {
75
b586ce4f6d97 Large GUI code cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
171 return false;
49
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
172 }
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
173
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
174 // Generic key handler
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
175 public boolean keyPressed(KeyEvent e)
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
176 {
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
177 if (e.getKeyCode() == keyCode)
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
178 {
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
179 clicked();
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
180 return true;
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
181 }
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
182 else
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
183 return false;
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
184 }
134
4c0dec72e2f0 Whitespace cosmetic cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 75
diff changeset
185
49
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
186 public void clicked()
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
187 {
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
188 }
171
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
189
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
190 public void setTextFont(Font font, FontMetrics metrics)
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
191 {
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
192 textFont = font;
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
193 textMetrics = metrics;
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
194 }
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
195
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
196 public void setTextPaint(Paint paint)
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
197 {
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
198 textPaint = paint;
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
199 }
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
200
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
201 public void setCurrPos(IDMPoint npos)
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
202 {
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
203 textCurrPos = npos;
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
204 textCurrOffs = new IDMPoint(0, 0);
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
205 }
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
206
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
207 public void setCurrPos(float x, float y)
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
208 {
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
209 setCurrPos(new IDMPoint(x, y));
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
210 }
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
211
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
212 public void setCurrPosScaledRel(float x, float y)
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
213 {
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
214 setCurrPos(new IDMPoint(getScaledRelX(x), getScaledRelY(y)));
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
215 }
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
216
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
217 public void drawString(Graphics2D g, String text)
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
218 {
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
219 Paint savePaint = g.getPaint();
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
220 g.setPaint(textPaint);
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
221 g.setFont(textFont);
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
222
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
223 int i = 0;
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
224 while (i < text.length())
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
225 {
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
226 int p = text.indexOf("\n", i);
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
227 boolean linefeed;
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
228 String str;
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
229 if (p >= i)
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
230 {
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
231 str = text.substring(i, p);
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
232 i = p + 1;
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
233 linefeed = true;
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
234 }
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
235 else
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
236 {
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
237 str = text.substring(i);
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
238 i += str.length();
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
239 linefeed = false;
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
240 }
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
241
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
242 g.drawString(str, textCurrPos.x + textCurrOffs.x, textCurrPos.y + textCurrOffs.y);
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
243
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
244 if (linefeed)
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
245 {
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
246 textCurrOffs.x = 0;
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
247 textCurrOffs.y += textMetrics.getHeight();
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
248 }
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
249 else
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
250 {
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
251 textCurrOffs.x += textMetrics.stringWidth(str);
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
252 }
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
253 }
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
254
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
255 g.setPaint(savePaint);
5070e57ebbfc Move text drawing stuff to IDMWidget class.
Matti Hamalainen <ccr@tnsp.org>
parents: 170
diff changeset
256 }
49
e6da5c71be28 Add more code to IDM widgets, do preliminary work for integrating them.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
257 }