01: /*
02: * HorizontalScrollBarListener.java
03: *
04: * Copyright (C) 2000-2002 Peter Graves
05: * $Id: HorizontalScrollBarListener.java,v 1.1.1.1 2002/09/24 16:09:26 piso Exp $
06: *
07: * This program is free software; you can redistribute it and/or
08: * modify it under the terms of the GNU General Public License
09: * as published by the Free Software Foundation; either version 2
10: * of the License, or (at your option) any later version.
11: *
12: * This program is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15: * GNU General Public License for more details.
16: *
17: * You should have received a copy of the GNU General Public License
18: * along with this program; if not, write to the Free Software
19: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20: */
21:
22: package org.armedbear.j;
23:
24: import java.awt.event.AdjustmentEvent;
25: import java.awt.event.AdjustmentListener;
26:
27: public final class HorizontalScrollBarListener implements
28: AdjustmentListener {
29: private Editor editor;
30:
31: public HorizontalScrollBarListener(Editor editor) {
32: this .editor = editor;
33: }
34:
35: public void adjustmentValueChanged(AdjustmentEvent e) {
36: if (editor.inScrollBarUpdate)
37: return;
38: final Display display = editor.getDisplay();
39: int value = e.getValue() / display.getCharWidth();
40: if (value != display.shift) {
41: int absCaretCol = display.getShift()
42: + display.getCaretCol();
43: display.setShift(value);
44: display.setCaretCol(absCaretCol - value);
45: display.repaint();
46: }
47: }
48: }
|