OSDN Git Service

fix bootstrap build breakage
[pf3gnuchains/gcc-fork.git] / libjava / javax / swing / text / DefaultCaret.java
1 /* DefaultCaret.java --
2    Copyright (C) 2002, 2004 Free Software Foundation, Inc.
3
4 This file is part of GNU Classpath.
5
6 GNU Classpath is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 GNU Classpath is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GNU Classpath; see the file COPYING.  If not, write to the
18 Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
19 02111-1307 USA.
20
21 Linking this library statically or dynamically with other modules is
22 making a combined work based on this library.  Thus, the terms and
23 conditions of the GNU General Public License cover the whole
24 combination.
25
26 As a special exception, the copyright holders of this library give you
27 permission to link this library with independent modules to produce an
28 executable, regardless of the license terms of these independent
29 modules, and to copy and distribute the resulting executable under
30 terms of your choice, provided that you also meet, for each linked
31 independent module, the terms and conditions of the license of that
32 module.  An independent module is a module which is not derived from
33 or based on this library.  If you modify this library, you may extend
34 this exception to your version of the library, but you are not
35 obligated to do so.  If you do not wish to do so, delete this
36 exception statement from your version. */
37
38 package javax.swing.text;
39
40 import java.awt.Color;
41 import java.awt.Graphics;
42 import java.awt.Point;
43 import java.awt.Rectangle;
44 import java.awt.event.FocusListener;
45 import java.awt.event.MouseListener;
46 import java.awt.event.MouseMotionListener;
47 import java.util.EventListener;
48
49 import javax.swing.event.ChangeEvent;
50 import javax.swing.event.ChangeListener;
51 import javax.swing.event.EventListenerList;
52
53
54 public class DefaultCaret extends Rectangle
55   implements Caret, FocusListener, MouseListener, MouseMotionListener
56 {
57   protected ChangeEvent changeEvent = new ChangeEvent(this);
58   protected EventListenerList listenerList = new EventListenerList();
59   
60   Color color = new Color(0, 0, 0);
61   JTextComponent parent;
62   Point magic = null;
63   int mark = 0;
64   boolean vis_sel = true;
65   int blink = 500;
66   int dot = 0;
67   boolean vis = true;
68
69
70   public void mouseDragged(java.awt.event.MouseEvent evt)
71   {
72   }
73
74   public void mouseMoved(java.awt.event.MouseEvent evt)
75   {
76   }
77
78   public void mouseClicked(java.awt.event.MouseEvent evt)
79   {
80   }
81
82   public void mouseEntered(java.awt.event.MouseEvent evt)
83   {
84   }
85
86   public void mouseExited(java.awt.event.MouseEvent evt)
87   {
88   }
89
90   public void mousePressed(java.awt.event.MouseEvent evt)
91   {
92   }
93
94   public void mouseReleased(java.awt.event.MouseEvent evt)
95   {
96   }
97
98   public void focusGained(java.awt.event.FocusEvent evt)
99   {
100   }
101
102   public void focusLost(java.awt.event.FocusEvent evt)
103   {
104   }
105
106   public void deinstall(JTextComponent c)
107   {
108     parent.removeFocusListener(this);
109     parent.removeMouseListener(this);
110     parent = null;
111   }
112
113   public void install(JTextComponent c)
114   {
115     parent.addFocusListener(this);
116     parent.addMouseListener(this);
117     parent = c;
118     repaint();
119   }
120
121   public void setMagicCaretPosition(Point p)
122   {
123     magic = p;
124   }
125
126   public Point getMagicCaretPosition()
127   {
128     return magic;
129   }
130
131   public int getMark()
132   {
133     return mark;
134   }
135
136   public void setSelectionVisible(boolean v)
137   {
138     vis_sel = v;
139     repaint();
140   }
141
142   public boolean isSelectionVisible()
143   {
144     return vis_sel;
145   }
146
147   private void repaint()
148   {
149     if (parent != null)
150       parent.repaint();
151   }
152
153   public void paint(Graphics g)
154   {
155     g.setColor(color);
156     g.drawLine(x, y, x, y + height);
157   }
158
159   public EventListener[] getListeners(Class listenerType)
160   {
161     return listenerList.getListeners(listenerType);
162   }
163
164   public void addChangeListener(ChangeListener listener)
165   {
166     listenerList.add(ChangeListener.class, listener);
167   }
168
169   public void removeChangeListener(ChangeListener listener)
170   {
171     listenerList.remove(ChangeListener.class, listener);
172   }
173
174   public ChangeListener[] getChangeListeners()
175   {
176     return (ChangeListener[]) getListeners(ChangeListener.class);
177   }
178
179   protected void fireStateChanged()
180   {
181     ChangeListener[] listeners = getChangeListeners();
182
183     for (int index = 0; index < listeners.length; ++index)
184       listeners[index].stateChanged(changeEvent);
185   }
186
187   protected final JTextComponent getComponent()
188   {
189     return parent;
190   }
191   
192   public int getBlinkRate()
193   {
194     return blink;
195   }
196
197   public void setBlinkRate(int rate)
198   {
199     blink = rate;
200   }
201
202   public int getDot()
203   {
204     return dot;
205   }
206
207   public void moveDot(int dot)
208   {
209     setDot(dot);
210   }
211
212   public void setDot(int dot)
213   {
214     this.dot = dot;
215     repaint();
216   }
217
218   public boolean isVisible()
219   {
220     return vis;
221   }
222
223   public void setVisible(boolean v)
224   {
225     vis = v;
226     repaint();
227   }
228 }