Commit b5a74ff2bddf6839b5ce7ab48e6646af1e6f5ee0
1 parent
cb4d834e
Exists in
master
and in
25 other branches
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) | ... | ... |