equal
deleted
inserted
replaced
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) |