Commit 319e0fe152ff9bd5acf33f6f357b5a455139aafc
1 parent
b5a74ff2
Exists in
master
and in
25 other branches
Added a method to draw a text without a box
Showing
1 changed file
with
27 additions
and
3 deletions
Show diff stats
invesalius/data/viewer_slice.py
@@ -344,6 +344,29 @@ class CanvasRendererCTX: | @@ -344,6 +344,29 @@ class CanvasRendererCTX: | ||
344 | gc.SetBrush(wx.Brush(fill_colour)) | 344 | gc.SetBrush(wx.Brush(fill_colour)) |
345 | gc.DrawRectangle(px, py, width, height) | 345 | gc.DrawRectangle(px, py, width, height) |
346 | 346 | ||
347 | + def draw_text(self, text, pos, font=None, txt_colour=(255, 255, 255)): | ||
348 | + """ | ||
349 | + Draw text. | ||
350 | + | ||
351 | + Params: | ||
352 | + text: an unicode text. | ||
353 | + pos: (x, y) position. | ||
354 | + font: if None it'll use the default gui font. | ||
355 | + txt_colour: RGB text colour | ||
356 | + """ | ||
357 | + if self.gc is None: | ||
358 | + return None | ||
359 | + gc = self.gc | ||
360 | + | ||
361 | + if font is None: | ||
362 | + font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT) | ||
363 | + | ||
364 | + font = gc.CreateFont(font, txt_colour) | ||
365 | + gc.SetFont(font) | ||
366 | + | ||
367 | + px, py = pos | ||
368 | + gc.DrawText(text, px, py) | ||
369 | + | ||
347 | def draw_text_box(self, text, pos, font=None, txt_colour=(255, 255, 255), bg_colour=(128, 128, 128, 128), border=5): | 370 | def draw_text_box(self, text, pos, font=None, txt_colour=(255, 255, 255), bg_colour=(128, 128, 128, 128), border=5): |
348 | """ | 371 | """ |
349 | Draw text inside a text box. | 372 | Draw text inside a text box. |
@@ -363,8 +386,8 @@ class CanvasRendererCTX: | @@ -363,8 +386,8 @@ class CanvasRendererCTX: | ||
363 | if font is None: | 386 | if font is None: |
364 | font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT) | 387 | font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT) |
365 | 388 | ||
366 | - font = gc.CreateFont(font, txt_colour) | ||
367 | - gc.SetFont(font) | 389 | + _font = gc.CreateFont(font, txt_colour) |
390 | + gc.SetFont(_font) | ||
368 | w, h = gc.GetTextExtent(text) | 391 | w, h = gc.GetTextExtent(text) |
369 | 392 | ||
370 | px, py = pos | 393 | px, py = pos |
@@ -374,8 +397,9 @@ class CanvasRendererCTX: | @@ -374,8 +397,9 @@ class CanvasRendererCTX: | ||
374 | cw, ch = w + border * 2, h + border * 2 | 397 | cw, ch = w + border * 2, h + border * 2 |
375 | self.draw_rectangle((px, py), cw, ch, bg_colour, bg_colour) | 398 | self.draw_rectangle((px, py), cw, ch, bg_colour, bg_colour) |
376 | 399 | ||
400 | + # Drawing the text | ||
377 | tpx, tpy = px + border, py + border | 401 | tpx, tpy = px + border, py + border |
378 | - gc.DrawText(text, tpx, tpy) | 402 | + self.draw_text(text, (tpx, tpy), font, txt_colour) |
379 | 403 | ||
380 | def draw_arc(self, center, p0, p1, line_colour=(255, 0, 0, 128), width=2): | 404 | def draw_arc(self, center, p0, p1, line_colour=(255, 0, 0, 128), width=2): |
381 | """ | 405 | """ |