src/Tools/jEdit/src/jedit/html_panel.scala
changeset 38573 d163f0f28e8c
parent 38444 796904799f4d
child 39590 2258769f112f
equal deleted inserted replaced
38572:0fe2c01ef7da 38573:d163f0f28e8c
   114   /** main actor **/
   114   /** main actor **/
   115 
   115 
   116   /* internal messages */
   116   /* internal messages */
   117 
   117 
   118   private case class Resize(font_family: String, font_size: Int)
   118   private case class Resize(font_family: String, font_size: Int)
   119   private case class Render(body: List[XML.Tree])
   119   private case class Render(body: XML.Body)
   120   private case object Refresh
   120   private case object Refresh
   121 
   121 
   122   private val main_actor = actor {
   122   private val main_actor = actor {
   123 
   123 
   124     /* internal state */
   124     /* internal state */
   125 
   125 
   126     var current_font_metrics: FontMetrics = null
   126     var current_font_metrics: FontMetrics = null
   127     var current_font_family = ""
   127     var current_font_family = ""
   128     var current_font_size: Int = 0
   128     var current_font_size: Int = 0
   129     var current_margin: Int = 0
   129     var current_margin: Int = 0
   130     var current_body: List[XML.Tree] = Nil
   130     var current_body: XML.Body = Nil
   131 
   131 
   132     def resize(font_family: String, font_size: Int)
   132     def resize(font_family: String, font_size: Int)
   133     {
   133     {
   134       val font = new Font(font_family, Font.PLAIN, lobo_px(raw_px(font_size)))
   134       val font = new Font(font_family, Font.PLAIN, lobo_px(raw_px(font_size)))
   135       val (font_metrics, margin) =
   135       val (font_metrics, margin) =
   150       }
   150       }
   151     }
   151     }
   152 
   152 
   153     def refresh() { render(current_body) }
   153     def refresh() { render(current_body) }
   154 
   154 
   155     def render(body: List[XML.Tree])
   155     def render(body: XML.Body)
   156     {
   156     {
   157       current_body = body
   157       current_body = body
   158       val html_body =
   158       val html_body =
   159         current_body.flatMap(div =>
   159         current_body.flatMap(div =>
   160           Pretty.formatted(List(div), current_margin, Pretty.font_metric(current_font_metrics))
   160           Pretty.formatted(List(div), current_margin, Pretty.font_metric(current_font_metrics))
   188 
   188 
   189   /* external methods */
   189   /* external methods */
   190 
   190 
   191   def resize(font_family: String, font_size: Int) { main_actor ! Resize(font_family, font_size) }
   191   def resize(font_family: String, font_size: Int) { main_actor ! Resize(font_family, font_size) }
   192   def refresh() { main_actor ! Refresh }
   192   def refresh() { main_actor ! Refresh }
   193   def render(body: List[XML.Tree]) { main_actor ! Render(body) }
   193   def render(body: XML.Body) { main_actor ! Render(body) }
   194 }
   194 }