src/Tools/jEdit/src/isabelle.scala
changeset 55824 22bc50a19afa
parent 55823 0331b6d2ab0c
child 55825 694833e3e4a0
equal deleted inserted replaced
55823:0331b6d2ab0c 55824:22bc50a19afa
   187   /* font size */
   187   /* font size */
   188 
   188 
   189   private object font_size
   189   private object font_size
   190   {
   190   {
   191     // owned by Swing thread
   191     // owned by Swing thread
   192     private var last_view: Option[View] = None
       
   193     private var steps = 0
   192     private var steps = 0
   194     private val delay = Swing_Thread.delay_last(PIDE.options.seconds("editor_input_delay"))
   193     private val delay = Swing_Thread.delay_last(PIDE.options.seconds("editor_input_delay"))
   195     {
   194     {
   196       val view = last_view getOrElse jEdit.getActiveView()
   195       Rendering.font_size_change(i =>
   197       Rendering.font_size_change(view, i =>
       
   198         {
   196         {
   199           var j = i
   197           var j = i
   200           while (steps != 0 && j > 0) {
   198           while (steps != 0 && j > 0) {
   201             if (steps > 0)
   199             if (steps > 0)
   202               { j += (j / 10) max 1; steps -= 1 }
   200               { j += (j / 10) max 1; steps -= 1 }
   205           }
   203           }
   206           steps = 0
   204           steps = 0
   207           j
   205           j
   208         })
   206         })
   209     }
   207     }
   210     def step(view: View, i: Int) { last_view = Some(view); steps += i; delay.invoke() }
   208     def step(i: Int) { steps += i; delay.invoke() }
   211     def reset() { delay.revoke(); last_view = None; steps = 0 }
   209     def reset() { delay.revoke(); steps = 0 }
   212   }
   210   }
   213 
   211 
   214   def reset_font_size(view: View): Unit =
   212   def reset_font_size()
   215   {
   213   {
   216     font_size.reset()
   214     font_size.reset()
   217     Rendering.font_size_change(view, _ => PIDE.options.int("jedit_reset_font_size"))
   215     Rendering.font_size_change(_ => PIDE.options.int("jedit_reset_font_size"))
   218   }
   216   }
   219 
   217 
   220   def increase_font_size(view: View): Unit = font_size.step(view, 1)
   218   def increase_font_size() { font_size.step(1) }
   221   def decrease_font_size(view: View): Unit = font_size.step(view, -1)
   219   def decrease_font_size() { font_size.step(-1) }
   222 
   220 
   223 
   221 
   224   /* structured edits */
   222   /* structured edits */
   225 
   223 
   226   def insert_line_padding(text_area: JEditTextArea, text: String)
   224   def insert_line_padding(text_area: JEditTextArea, text: String)