equal
deleted
inserted
replaced
8 |
8 |
9 |
9 |
10 import isabelle._ |
10 import isabelle._ |
11 |
11 |
12 import java.awt.{Component, Container, Window, GraphicsEnvironment, Point, Rectangle} |
12 import java.awt.{Component, Container, Window, GraphicsEnvironment, Point, Rectangle} |
|
13 import java.awt.event.{KeyEvent, KeyListener} |
13 import javax.swing.{Icon, ImageIcon, JWindow} |
14 import javax.swing.{Icon, ImageIcon, JWindow} |
14 |
15 |
15 import scala.annotation.tailrec |
16 import scala.annotation.tailrec |
16 |
17 |
17 import org.gjt.sp.jedit.{jEdit, Buffer, View, GUIUtilities} |
18 import org.gjt.sp.jedit.{jEdit, Buffer, View, GUIUtilities} |
|
19 import org.gjt.sp.jedit.gui.KeyEventWorkaround |
18 import org.gjt.sp.jedit.buffer.JEditBuffer |
20 import org.gjt.sp.jedit.buffer.JEditBuffer |
19 import org.gjt.sp.jedit.textarea.{JEditTextArea, TextArea, TextAreaPainter} |
21 import org.gjt.sp.jedit.textarea.{JEditTextArea, TextArea, TextAreaPainter} |
20 |
22 |
21 |
23 |
22 object JEdit_Lib |
24 object JEdit_Lib |
298 def load_image_icon(name: String): ImageIcon = |
300 def load_image_icon(name: String): ImageIcon = |
299 load_icon(name) match { |
301 load_icon(name) match { |
300 case icon: ImageIcon => icon |
302 case icon: ImageIcon => icon |
301 case _ => error("Bad image icon: " + name) |
303 case _ => error("Bad image icon: " + name) |
302 } |
304 } |
|
305 |
|
306 |
|
307 /* key listener */ |
|
308 |
|
309 def key_listener( |
|
310 workaround: Boolean = true, |
|
311 key_typed: KeyEvent => Unit = _ => (), |
|
312 key_pressed: KeyEvent => Unit = _ => (), |
|
313 key_released: KeyEvent => Unit = _ => ()): KeyListener = |
|
314 { |
|
315 def process_key_event(evt0: KeyEvent, handle: KeyEvent => Unit) |
|
316 { |
|
317 val evt = if (workaround) KeyEventWorkaround.processKeyEvent(evt0) else evt0 |
|
318 if (evt != null) handle(evt) |
|
319 } |
|
320 |
|
321 new KeyListener |
|
322 { |
|
323 def keyTyped(evt: KeyEvent) { process_key_event(evt, key_typed) } |
|
324 def keyPressed(evt: KeyEvent) { process_key_event(evt, key_pressed) } |
|
325 def keyReleased(evt: KeyEvent) { process_key_event(evt, key_released) } |
|
326 } |
|
327 } |
303 } |
328 } |
304 |
329 |