def clear_callback(self): """ Clear the drawing canvas. """ drawing = Drawing(DrawingType.CLEAR, 0, (0, 0, 0, 0)) self.view.draw_shape(drawing) self._enqueue(drawing)
class TestDrawing(TestCase): def setUp(self): self.drawing = Drawing(DrawingType.RECT, 0, [0, 0, 1, 1]) def test_encoding_decoding_are_equal(self): bytes_array = self.drawing.encode() other = Drawing.decode_drawing(bytes_array) self.assertEqual(self.drawing, other)
class TestDrawing(TestCase): def setUp(self): self.drawing = Drawing(DrawingType.RECT, 0, "#000000", [0, 0, 1, 1]) self.text_drawing = Drawing(DrawingType.TEXT, 0, "#000000", [0, 0, 0, 0], "testing") def test_encoding_decoding_are_equal(self): bytes_array = self.drawing.encode() decoded, decoded_length = Drawing.decode_drawing(bytes_array) self.assertEqual(len(bytes_array), decoded_length) self.assertEqual(self.drawing, decoded) def test_decoding_multiple_drawings(self): bytes_array = self.drawing.encode() + self.text_drawing.encode() decoded = Drawing.decode_drawings(bytes_array) self.assertEqual(decoded[0], self.drawing) self.assertEqual(decoded[1], self.text_drawing) def test_decoding_text(self): bytes_array = self.text_drawing.encode() decoded, decoded_length = Drawing.decode_drawing(bytes_array) self.assertEqual(len(bytes_array), decoded_length) self.assertEqual(self.text_drawing, decoded)
def _handle_motion_event(self, event, drawing_type, drag_drawing): """ """ if drag_drawing: self.view.clear_drawing_by_id(self.last_drawing_id) if not self.cancel_drawing: event_coord = event.x, event.y drawing = Drawing(drawing_type, self.current_thickness, self.start_pos + event_coord) if not drag_drawing: self._enqueue(drawing) self.start_pos = event_coord drawing_id = self.view.draw_shape(drawing) self.last_drawing_id = drawing_id
def _handle_button_release_event(self, event, drawing_type, drag_drawing): """ """ if drag_drawing: self.view.clear_drawing_by_id(self.last_drawing_id) if not self.cancel_drawing: if drawing_type != DrawingType.TEXT: drawing = Drawing(drawing_type, self.current_thickness, self.start_pos + (event.x, event.y)) self._enqueue(drawing) self.view.draw_shape(drawing) else: self._create_text_entry_box( self.current_thickness, self.start_pos + (event.x, event.y)) self.start_pos = None self.last_drawing_id = None self.cancel_drawing = False
def f(event=None): # event is passed when using a keybinding drawing = Drawing(DrawingType.TEXT, thickness, coords, text_entry.get()[:self.TEXT_SIZE_LIMIT]) self._enqueue(drawing) self.view.draw_shape(drawing) window.destroy()
def _decode_and_draw(self, drawing_data): """ Decode the drawing(s) and pass them to the view to be displayed. """ for drawing in Drawing.decode_drawings(drawing_data): self.view.draw_shape(drawing)
def setUp(self): self.drawing = Drawing(DrawingType.RECT, 0, "#000000", [0, 0, 1, 1]) self.text_drawing = Drawing(DrawingType.TEXT, 0, "#000000", [0, 0, 0, 0], "testing")
def test_decoding_text(self): bytes_array = self.text_drawing.encode() decoded, decoded_length = Drawing.decode_drawing(bytes_array) self.assertEqual(len(bytes_array), decoded_length) self.assertEqual(self.text_drawing, decoded)
def test_decoding_multiple_drawings(self): bytes_array = self.drawing.encode() + self.text_drawing.encode() decoded = Drawing.decode_drawings(bytes_array) self.assertEqual(decoded[0], self.drawing) self.assertEqual(decoded[1], self.text_drawing)
def setUp(self): self.drawing = Drawing(DrawingType.RECT, 0, [0, 0, 1, 1])
def test_encoding_decoding_are_equal(self): bytes_array = self.drawing.encode() other = Drawing.decode_drawing(bytes_array) self.assertEqual(self.drawing, other)