Commit b5a74ff2bddf6839b5ce7ab48e6646af1e6f5ee0

Authored by Thiago Franco de Moraes
1 parent cb4d834e

Added a method to draw a rectangle inside the canvas

Showing 1 changed file with 20 additions and 3 deletions   Show diff stats
invesalius/data/viewer_slice.py
... ... @@ -324,6 +324,25 @@ class CanvasRendererCTX:
324 324 gc.StrokePath(path)
325 325 gc.FillPath(path)
326 326  
  327 + def draw_rectangle(self, pos, width, height, line_colour=(255, 0, 0, 128), fill_colour=(0, 0, 0, 0)):
  328 + """
  329 + Draw a rectangle with its top left at pos and with the given width and height.
  330 +
  331 + Params:
  332 + pos: The top left pos (x, y) of the rectangle.
  333 + width: width of the rectangle.
  334 + height: heigth of the rectangle.
  335 + line_colour: RGBA line colour.
  336 + fill_colour: RGBA fill colour.
  337 + """
  338 + if self.gc is None:
  339 + return None
  340 + gc = self.gc
  341 +
  342 + px, py = pos
  343 + gc.SetPen(wx.Pen(line_colour))
  344 + gc.SetBrush(wx.Brush(fill_colour))
  345 + gc.DrawRectangle(px, py, width, height)
327 346  
328 347 def draw_text_box(self, text, pos, font=None, txt_colour=(255, 255, 255), bg_colour=(128, 128, 128, 128), border=5):
329 348 """
... ... @@ -353,9 +372,7 @@ class CanvasRendererCTX:
353 372  
354 373 # Drawing the box
355 374 cw, ch = w + border * 2, h + border * 2
356   - gc.SetBrush(wx.Brush(bg_colour))
357   - gc.SetPen(wx.Pen(bg_colour))
358   - gc.DrawRectangle(px, py, cw, ch)
  375 + self.draw_rectangle((px, py), cw, ch, bg_colour, bg_colour)
359 376  
360 377 tpx, tpy = px + border, py + border
361 378 gc.DrawText(text, tpx, tpy)
... ...