예제 #1
0
 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)
예제 #2
0
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)
예제 #3
0
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)
예제 #4
0
    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
예제 #5
0
    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
예제 #6
0
 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()
예제 #7
0
 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)
예제 #8
0
 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")
예제 #9
0
 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)
예제 #10
0
 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)
예제 #11
0
 def setUp(self):
     self.drawing = Drawing(DrawingType.RECT, 0, [0, 0, 1, 1])
예제 #12
0
 def test_encoding_decoding_are_equal(self):
     bytes_array = self.drawing.encode()
     other = Drawing.decode_drawing(bytes_array)
     self.assertEqual(self.drawing, other)