195 def from_current(pos: Int) = this.from_current(document.id, pos) |
195 def from_current(pos: Int) = this.from_current(document.id, pos) |
196 def to_current(pos: Int) = this.to_current(document.id, pos) |
196 def to_current(pos: Int) = this.to_current(document.id, pos) |
197 val saved_color = gfx.getColor |
197 val saved_color = gfx.getColor |
198 |
198 |
199 val metrics = text_area.getPainter.getFontMetrics |
199 val metrics = text_area.getPainter.getFontMetrics |
|
200 |
|
201 // encolor phase |
200 var e = document.find_command_at(from_current(start)) |
202 var e = document.find_command_at(from_current(start)) |
201 val commands = document.commands.dropWhile(_.stop(document) <= from_current(start)). |
203 while (e != null && e.start(document) < end) { |
202 takeWhile(c => to_current(c.start(document)) < end) |
|
203 // encolor phase |
|
204 for (e <- commands) { |
|
205 val begin = start max to_current(e.start(document)) |
204 val begin = start max to_current(e.start(document)) |
206 val finish = end - 1 min to_current(e.stop(document)) |
205 val finish = end - 1 min to_current(e.stop(document)) |
207 encolor(gfx, y, metrics.getHeight, begin, finish, TheoryView.choose_color(e), true) |
206 encolor(gfx, y, metrics.getHeight, begin, finish, TheoryView.choose_color(e), true) |
|
207 e = document.commands.next(e).getOrElse(null) |
208 } |
208 } |
209 |
209 |
210 gfx.setColor(saved_color) |
210 gfx.setColor(saved_color) |
211 } |
211 } |
212 |
212 |