Initial commit of newLISP.
[newlisp.git] / guiserver / java / TextShape.java
blob546c7d576216595155d020b5c95d1ec2573491a1
1 //
2 // TextShape.java
3 // guiserver
4 //
5 // Created by Lutz Mueller on 6/24/07.
6 //
7 //
8 // Copyright (C) 2007 Lutz Mueller
9 //
10 // This program is free software: you can redistribute it and/or modify
11 // it under the terms of the GNU General Public License as published by
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
15 // This program is distributed in the hope that it will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 // GNU General Public License for more details.
20 // You should have received a copy of the GNU General Public License
21 // along with this program. If not, see <http://www.gnu.org/licenses/>.
25 import java.lang.*;
26 import java.awt.*;
27 import java.awt.color.*;
28 import java.awt.geom.*;
29 import java.util.*;
31 @SuppressWarnings("unchecked")
32 public class TextShape extends Shape {
34 String text;
35 Font textShapeFont;
37 public TextShape(StringTokenizer tokens)
39 tag = tokens.nextToken();
40 text = Base64Coder.decodeString(tokens.nextToken());
41 X = Integer.parseInt(tokens.nextToken());
42 Y = Integer.parseInt(tokens.nextToken());
44 if(tokens.hasMoreTokens())
45 paintColor = Shape.getColorParameter(tokens);
46 else
47 paintColor = CanvasWidget.currentCanvas.currentPaint;
49 //System.out.println("text color:" +
50 //paintColor.getRed() + " " + paintColor.getGreen() + " " + paintColor.getBlue());
52 if(tokens.hasMoreTokens())
54 double theta = Float.parseFloat(tokens.nextToken());
55 theta = 2.0 * Math.PI * theta / 360.0;
56 transform = AffineTransform.getRotateInstance(theta, X, Y);
59 //stroke = CanvasWidget.currentCanvas.currentStroke;
61 textShapeFont = CanvasWidget.currentCanvas.currentFont;
63 CanvasWidget.currentCanvas.drawobjects.add(this);
66 public void drawShape(Graphics2D g2)
68 //g2.setStroke(stroke);
69 g2.setPaint(paintColor);
70 //System.out.println("font draw text with:" + textShapeFont);
71 g2.setFont(textShapeFont);
72 //g2.setComposite(currentComposite);
73 g2.drawString(text, X, Y);
76 public boolean hasPoint(int x, int y)
78 Component component = CanvasWidget.currentCanvas.component;
79 FontMetrics fm = component.getFontMetrics(textShapeFont);
81 int height = fm.getHeight();
83 return(new Rectangle(X, Y - height, fm.stringWidth(text), height).contains(x, y));
89 // eof //