Example #1
0
 def __create_thumbnail(self, draw_rect: Geometry.IntRect) -> DrawingContext.DrawingContext:
     drawing_context = DrawingContext.DrawingContext()
     if self.__display_item:
         thumbnail_data = self.calculate_thumbnail_data()
         if thumbnail_data is not None:
             draw_rect = Geometry.fit_to_size(draw_rect, thumbnail_data.shape)
             drawing_context.draw_image(thumbnail_data, draw_rect[0][1], draw_rect[0][0], draw_rect[1][1], draw_rect[1][0])
     return drawing_context
 def layout(self,
            canvas_origin,
            canvas_size,
            canvas_items,
            *,
            immediate=False):
     r = Geometry.IntRect(origin=canvas_origin, size=canvas_size)
     if canvas_size.width > canvas_size.height:
         r = Geometry.fit_to_size(
             r, Geometry.IntSize(w=canvas_size.height,
                                 h=canvas_size.height))
         super().layout(canvas_origin,
                        r.size,
                        canvas_items,
                        immediate=immediate)
     else:
         r = Geometry.fit_to_size(
             r, Geometry.IntSize(w=canvas_size.width, h=canvas_size.width))
         super().layout(canvas_origin,
                        r.size,
                        canvas_items,
                        immediate=immediate)
 def layout(self,
            canvas_origin: Geometry.IntPoint,
            canvas_size: Geometry.IntSize,
            canvas_items: typing.Sequence[CanvasItem.AbstractCanvasItem],
            *,
            immediate: bool = False) -> None:
     r = Geometry.IntRect(origin=canvas_origin, size=canvas_size)
     if canvas_size.width > canvas_size.height:
         r = Geometry.fit_to_size(
             r, Geometry.IntSize(w=canvas_size.height,
                                 h=canvas_size.height)).to_int_rect()
         super().layout(canvas_origin,
                        r.size,
                        canvas_items,
                        immediate=immediate)
     else:
         r = Geometry.fit_to_size(
             r, Geometry.IntSize(w=canvas_size.width,
                                 h=canvas_size.width)).to_int_rect()
         super().layout(canvas_origin,
                        r.size,
                        canvas_items,
                        immediate=immediate)
Example #4
0
 def __create_thumbnail(
         self,
         draw_rect: Geometry.IntRect) -> DrawingContext.DrawingContext:
     drawing_context = DrawingContext.DrawingContext()
     if self.__display_item:
         thumbnail_data = self.calculate_thumbnail_data()
         if thumbnail_data is not None:
             draw_rect_f = Geometry.fit_to_size(
                 draw_rect,
                 typing.cast(typing.Tuple[int, int], thumbnail_data.shape))
             drawing_context.draw_image(thumbnail_data, draw_rect_f.left,
                                        draw_rect_f.top, draw_rect_f.width,
                                        draw_rect_f.height)
     return drawing_context
Example #5
0
 def test_fit_to_size(self):
     eps = 0.0001
     rects = []
     sizes = []
     rects.append(((0, 0), (300, 700)))
     sizes.append((600, 1200))
     rects.append(((0, 0), (300, 700)))
     sizes.append((1200, 600))
     rects.append(((0, 0), (600, 800)))
     sizes.append((700, 1300))
     rects.append(((0, 0), (600, 800)))
     sizes.append((1300, 700))
     for rect, size in zip(rects, sizes):
         fit = Geometry.fit_to_size(rect, size)
         self.assertTrue(
             abs(
                 float(fit[1][1]) / float(fit[1][0]) -
                 float(size[1]) / float(size[0])) < eps)