25
|
1 /*******************************************************************************
|
|
2 * Copyright (c) 2000, 2008 IBM Corporation and others.
|
|
3 * All rights reserved. This program and the accompanying materials
|
|
4 * are made available under the terms of the Eclipse Public License v1.0
|
|
5 * which accompanies this distribution, and is available at
|
|
6 * http://www.eclipse.org/legal/epl-v10.html
|
|
7 *
|
|
8 * Contributors:
|
|
9 * IBM Corporation - initial API and implementation
|
|
10 * Port to the D programming language:
|
|
11 * Frank Benoit <benoit@tionex.de>
|
|
12 *******************************************************************************/
|
|
13 module org.eclipse.swt.custom.StyledTextListener;
|
|
14
|
|
15
|
|
16 import org.eclipse.swt.events.VerifyEvent;
|
|
17 import org.eclipse.swt.internal.SWTEventListener;
|
|
18 import org.eclipse.swt.widgets.Event;
|
|
19 import org.eclipse.swt.widgets.TypedListener;
|
|
20 import org.eclipse.swt.custom.StyledText;
|
|
21 import org.eclipse.swt.custom.ExtendedModifyEvent;
|
|
22 import org.eclipse.swt.custom.ExtendedModifyListener;
|
|
23 import org.eclipse.swt.custom.StyledTextEvent;
|
|
24 import org.eclipse.swt.custom.LineBackgroundEvent;
|
|
25 import org.eclipse.swt.custom.BidiSegmentEvent;
|
|
26 import org.eclipse.swt.custom.LineStyleEvent;
|
|
27 import org.eclipse.swt.custom.PaintObjectEvent;
|
|
28 import org.eclipse.swt.custom.MovementEvent;
|
|
29 import org.eclipse.swt.custom.TextChangedEvent;
|
|
30 import org.eclipse.swt.custom.TextChangingEvent;
|
|
31 import org.eclipse.swt.custom.LineBackgroundListener;
|
|
32 import org.eclipse.swt.custom.BidiSegmentListener;
|
|
33 import org.eclipse.swt.custom.LineStyleListener;
|
|
34 import org.eclipse.swt.custom.PaintObjectListener;
|
|
35 import org.eclipse.swt.custom.VerifyKeyListener;
|
|
36 import org.eclipse.swt.custom.StyledTextContent;
|
|
37 import org.eclipse.swt.custom.TextChangeListener;
|
|
38 import org.eclipse.swt.custom.MovementListener;
|
|
39
|
|
40
|
|
41 class StyledTextListener : TypedListener {
|
|
42 /**
|
|
43 */
|
|
44 this(SWTEventListener listener) {
|
|
45 super(listener);
|
|
46 }
|
|
47 /**
|
|
48 * Process StyledText events by invoking the event's handler.
|
|
49 *
|
|
50 * @param e the event to handle
|
|
51 */
|
|
52 public override void handleEvent(Event e) {
|
|
53
|
51
|
54 switch (e.type) {
|
|
55 case StyledText.ExtendedModify:
|
|
56 ExtendedModifyEvent extendedModifyEvent = new ExtendedModifyEvent(cast(StyledTextEvent) e);
|
|
57 (cast(ExtendedModifyListener) eventListener).modifyText(extendedModifyEvent);
|
|
58 break;
|
|
59 case StyledText.LineGetBackground:
|
|
60 LineBackgroundEvent lineBgEvent = new LineBackgroundEvent(cast(StyledTextEvent) e);
|
|
61 (cast(LineBackgroundListener) eventListener).lineGetBackground(lineBgEvent);
|
|
62 (cast(StyledTextEvent) e).lineBackground = lineBgEvent.lineBackground;
|
|
63 break;
|
|
64 case StyledText.LineGetSegments:
|
|
65 BidiSegmentEvent segmentEvent = new BidiSegmentEvent(cast(StyledTextEvent) e);
|
|
66 (cast(BidiSegmentListener) eventListener).lineGetSegments(segmentEvent);
|
|
67 (cast(StyledTextEvent) e).segments = segmentEvent.segments;
|
|
68 break;
|
|
69 case StyledText.LineGetStyle:
|
|
70 LineStyleEvent lineStyleEvent = new LineStyleEvent(cast(StyledTextEvent) e);
|
|
71 (cast(LineStyleListener) eventListener).lineGetStyle(lineStyleEvent);
|
|
72 (cast(StyledTextEvent) e).ranges = lineStyleEvent.ranges;
|
|
73 (cast(StyledTextEvent) e).styles = lineStyleEvent.styles;
|
|
74 (cast(StyledTextEvent) e).alignment = lineStyleEvent.alignment;
|
|
75 (cast(StyledTextEvent) e).indent = lineStyleEvent.indent;
|
|
76 (cast(StyledTextEvent) e).justify = lineStyleEvent.justify;
|
|
77 (cast(StyledTextEvent) e).bullet = lineStyleEvent.bullet;
|
|
78 (cast(StyledTextEvent) e).bulletIndex = lineStyleEvent.bulletIndex;
|
|
79 break;
|
|
80 case StyledText.PaintObject:
|
|
81 PaintObjectEvent paintObjectEvent = new PaintObjectEvent(cast(StyledTextEvent) e);
|
|
82 (cast(PaintObjectListener) eventListener).paintObject(paintObjectEvent);
|
|
83 break;
|
|
84 case StyledText.VerifyKey:
|
|
85 VerifyEvent verifyEvent = new VerifyEvent(e);
|
|
86 (cast(VerifyKeyListener) eventListener).verifyKey(verifyEvent);
|
|
87 e.doit = verifyEvent.doit;
|
|
88 break;
|
|
89 case StyledText.TextChanged: {
|
|
90 TextChangedEvent textChangedEvent = new TextChangedEvent(cast(StyledTextContent) e.data);
|
|
91 (cast(TextChangeListener) eventListener).textChanged(textChangedEvent);
|
|
92 break;
|
|
93 }
|
|
94 case StyledText.TextChanging:
|
|
95 TextChangingEvent textChangingEvent = new TextChangingEvent(cast(StyledTextContent) e.data, cast(StyledTextEvent) e);
|
|
96 (cast(TextChangeListener) eventListener).textChanging(textChangingEvent);
|
|
97 break;
|
|
98 case StyledText.TextSet: {
|
|
99 TextChangedEvent textChangedEvent = new TextChangedEvent(cast(StyledTextContent) e.data);
|
|
100 (cast(TextChangeListener) eventListener).textSet(textChangedEvent);
|
|
101 break;
|
|
102 }
|
|
103 case StyledText.WordNext: {
|
|
104 MovementEvent wordBoundaryEvent = new MovementEvent(cast(StyledTextEvent) e);
|
|
105 (cast(MovementListener) eventListener).getNextOffset(wordBoundaryEvent);
|
|
106 (cast(StyledTextEvent) e).end = wordBoundaryEvent.newOffset;
|
|
107 break;
|
|
108 }
|
|
109 case StyledText.WordPrevious: {
|
|
110 MovementEvent wordBoundaryEvent = new MovementEvent(cast(StyledTextEvent) e);
|
|
111 (cast(MovementListener) eventListener).getPreviousOffset(wordBoundaryEvent);
|
|
112 (cast(StyledTextEvent) e).end = wordBoundaryEvent.newOffset;
|
|
113 break;
|
|
114 }
|
|
115 default:
|
|
116 }
|
25
|
117 }
|
|
118 }
|
|
119
|
|
120
|