src/Tools/jEdit/src/jedit_lib.scala
changeset 53226 9cf8e2263ca7
parent 53183 018d71bee930
child 53231 423e29f1f304
equal deleted inserted replaced
53214:bae01293f4dd 53226:9cf8e2263ca7
     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