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 | 344 | gc.SetBrush(wx.Brush(fill_colour)) |
| 345 | 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 | 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 | 372 | Draw text inside a text box. |
| ... | ... | @@ -363,8 +386,8 @@ class CanvasRendererCTX: |
| 363 | 386 | if font is None: |
| 364 | 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 | 391 | w, h = gc.GetTextExtent(text) |
| 369 | 392 | |
| 370 | 393 | px, py = pos |
| ... | ... | @@ -374,8 +397,9 @@ class CanvasRendererCTX: |
| 374 | 397 | cw, ch = w + border * 2, h + border * 2 |
| 375 | 398 | self.draw_rectangle((px, py), cw, ch, bg_colour, bg_colour) |
| 376 | 399 | |
| 400 | + # Drawing the text | |
| 377 | 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 | 404 | def draw_arc(self, center, p0, p1, line_colour=(255, 0, 0, 128), width=2): |
| 381 | 405 | """ | ... | ... |