src/Tools/jEdit/src/document_view.scala
changeset 44437 bebe15799192
parent 44436 546adfa8a6fc
child 44473 4f264fdf8d0e
equal deleted inserted replaced
44436:546adfa8a6fc 44437:bebe15799192
   124         val start = text_area.getScreenLineStartOffset(i)
   124         val start = text_area.getScreenLineStartOffset(i)
   125         val stop = text_area.getScreenLineEndOffset(i)
   125         val stop = text_area.getScreenLineEndOffset(i)
   126         if start >= 0 && stop >= 0
   126         if start >= 0 && stop >= 0
   127       }
   127       }
   128       yield Text.Range(start, stop))
   128       yield Text.Range(start, stop))
       
   129   }
       
   130 
       
   131   private def update_perspective = new TextAreaExtension
       
   132   {
       
   133     override def paintScreenLineRange(gfx: Graphics2D,
       
   134       first_line: Int, last_line: Int, physical_lines: Array[Int],
       
   135       start: Array[Int], end: Array[Int], y: Int, line_height: Int)
       
   136     {
       
   137       model.update_perspective()
       
   138     }
   129   }
   139   }
   130 
   140 
   131 
   141 
   132   /* snapshot */
   142   /* snapshot */
   133 
   143 
   353     }
   363     }
   354     override def caretUpdate(e: CaretEvent) { delay() }
   364     override def caretUpdate(e: CaretEvent) { delay() }
   355   }
   365   }
   356 
   366 
   357 
   367 
   358   /* scrolling */
       
   359 
       
   360   private val scroll_listener = new ScrollListener
       
   361   {
       
   362     def scrolledVertically(arg: TextArea) { model.update_perspective() }
       
   363     def scrolledHorizontally(arg: TextArea) { }
       
   364   }
       
   365 
       
   366 
       
   367   /* overview of command status left of scrollbar */
   368   /* overview of command status left of scrollbar */
   368 
   369 
   369   private val overview = new JPanel(new BorderLayout)
   370   private val overview = new JPanel(new BorderLayout)
   370   {
   371   {
   371     private val WIDTH = 10
   372     private val WIDTH = 10
   475   /* activation */
   476   /* activation */
   476 
   477 
   477   private def activate()
   478   private def activate()
   478   {
   479   {
   479     val painter = text_area.getPainter
   480     val painter = text_area.getPainter
       
   481     painter.addExtension(TextAreaPainter.LOWEST_LAYER, update_perspective)
   480     painter.addExtension(TextAreaPainter.LINE_BACKGROUND_LAYER + 1, tooltip_painter)
   482     painter.addExtension(TextAreaPainter.LINE_BACKGROUND_LAYER + 1, tooltip_painter)
   481     text_area_painter.activate()
   483     text_area_painter.activate()
   482     text_area.getGutter.addExtension(gutter_painter)
   484     text_area.getGutter.addExtension(gutter_painter)
   483     text_area.addFocusListener(focus_listener)
   485     text_area.addFocusListener(focus_listener)
   484     text_area.getView.addWindowListener(window_listener)
   486     text_area.getView.addWindowListener(window_listener)
   485     painter.addMouseMotionListener(mouse_motion_listener)
   487     painter.addMouseMotionListener(mouse_motion_listener)
   486     text_area.addCaretListener(caret_listener)
   488     text_area.addCaretListener(caret_listener)
   487     text_area.addScrollListener(scroll_listener)
       
   488     text_area.addLeftOfScrollBar(overview)
   489     text_area.addLeftOfScrollBar(overview)
   489     session.commands_changed += main_actor
   490     session.commands_changed += main_actor
   490     session.global_settings += main_actor
   491     session.global_settings += main_actor
   491   }
   492   }
   492 
   493 
   497     session.global_settings -= main_actor
   498     session.global_settings -= main_actor
   498     text_area.removeFocusListener(focus_listener)
   499     text_area.removeFocusListener(focus_listener)
   499     text_area.getView.removeWindowListener(window_listener)
   500     text_area.getView.removeWindowListener(window_listener)
   500     painter.removeMouseMotionListener(mouse_motion_listener)
   501     painter.removeMouseMotionListener(mouse_motion_listener)
   501     text_area.removeCaretListener(caret_listener)
   502     text_area.removeCaretListener(caret_listener)
   502     text_area.removeScrollListener(scroll_listener)
       
   503     text_area.removeLeftOfScrollBar(overview)
   503     text_area.removeLeftOfScrollBar(overview)
   504     text_area.getGutter.removeExtension(gutter_painter)
   504     text_area.getGutter.removeExtension(gutter_painter)
   505     text_area_painter.deactivate()
   505     text_area_painter.deactivate()
   506     painter.removeExtension(tooltip_painter)
   506     painter.removeExtension(tooltip_painter)
       
   507     painter.removeExtension(update_perspective)
   507     exit_popup()
   508     exit_popup()
   508   }
   509   }
   509 }
   510 }