Commit 90a7223f2ac1e6bccc7a41cad051ac1af5703d5d

Authored by Thiago Franco de Moraes
1 parent fa77b6dc
Exists in canvas_reeng

Added a method to calc text size rendered with a given font

Showing 1 changed file with 24 additions and 0 deletions   Show diff stats
invesalius/data/viewer_slice.py
@@ -258,6 +258,30 @@ class CanvasRendererCTX: @@ -258,6 +258,30 @@ class CanvasRendererCTX:
258 self._cv_image.Modified() 258 self._cv_image.Modified()
259 self.modified = False 259 self.modified = False
260 260
  261 + def calc_text_size(self, text, font=None):
  262 + """
  263 + Given an unicode text and a font returns the width and height of the
  264 + rendered text in pixels.
  265 +
  266 + Params:
  267 + text: An unicode text.
  268 + font: An wxFont.
  269 +
  270 + Returns:
  271 + A tuple with width and height values in pixels
  272 + """
  273 + if self.gc is None:
  274 + return None
  275 + gc = self.gc
  276 +
  277 + if font is None:
  278 + font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
  279 +
  280 + _font = gc.CreateFont(font)
  281 + gc.SetFont(_font)
  282 + w, h = gc.GetTextExtent(text)
  283 + return w, h
  284 +
261 def draw_line(self, pos0, pos1, arrow_start=False, arrow_end=False, colour=(255, 0, 0, 128), width=2, style=wx.SOLID): 285 def draw_line(self, pos0, pos1, arrow_start=False, arrow_end=False, colour=(255, 0, 0, 128), width=2, style=wx.SOLID):
262 """ 286 """
263 Draw a line from pos0 to pos1 287 Draw a line from pos0 to pos1