~elementary-os/ubuntu-package-imports/onboard-trusty

« back to all changes in this revision

Viewing changes to Onboard/Layout.py

  • Committer: RabbitBot
  • Date: 2015-09-10 04:10:25 UTC
  • Revision ID: rabbitbot@elementaryos.org-20150910041025-1koh01nccpurf1lg
updated to version 1.0.1-0ubuntu1

Show diffs side-by-side

added added

removed removed

Lines of Context:
173
173
        self._last_hit_args = None
174
174
        self._last_hit_key = None
175
175
 
176
 
    def fit_inside_canvas(self, canvas_border_rect,
177
 
                          keep_aspect = False,
178
 
                          aspect_change_range = (0.0, 1.1),
179
 
                          x_align = 0.5, y_align = 0.0):
180
 
        self._item.fit_inside_canvas(canvas_border_rect,
181
 
                                     keep_aspect, aspect_change_range,
182
 
                                     x_align, y_align)
 
176
    def fit_inside_canvas(self, canvas_border_rect):
 
177
        self._item.fit_inside_canvas(canvas_border_rect)
 
178
 
 
179
        # rects likely changed
 
180
        # -> invalidate geometry related caches
 
181
        self.invalidate_geometry_caches()
 
182
 
 
183
    def do_fit_inside_canvas(self, canvas_border_rect):
 
184
        self._item.do_fit_inside_canvas(canvas_border_rect)
183
185
 
184
186
        # rects likely changed
185
187
        # -> invalidate geometry related caches
469
471
        root = self.get_layout_root()
470
472
        return root.context.scale_log_to_canvas((2.0, 2.0))
471
473
 
472
 
    def fit_inside_canvas(self, canvas_border_rect,
473
 
                          keep_aspect = False,
474
 
                          aspect_change_range = (0.0, 1.1),
475
 
                          x_align = 0.5, y_align = 0.0):
 
474
    def fit_inside_canvas(self, canvas_border_rect):
476
475
        """
477
476
        Scale item and its children to fit inside the given canvas_rect.
478
477
        """
479
478
        # recursively update item's bounding boxes
480
479
        self.update_log_rect()
481
480
 
482
 
        # optionally maintain the aspect ratio and align the result
483
 
        if keep_aspect:
484
 
            r = self.context.log_rect
485
 
            if r.h:
486
 
                a0 = r.w / float(r.h)
487
 
                a0_max = a0 * aspect_change_range[1]
488
 
                a1 = canvas_border_rect.w / float(canvas_border_rect.h)
489
 
                a = min(a1, a0_max)
490
 
 
491
 
                r = Rect(0, 0, a, 1.0)
492
 
                r = Rect(0, 0, a, 1.0)
493
 
            canvas_border_rect = r.inscribe_with_aspect( \
494
 
                                      canvas_border_rect, x_align, y_align)
495
 
 
496
481
        # recursively fit inside canvas
497
 
        self._fit_inside_canvas(canvas_border_rect)
 
482
        self.do_fit_inside_canvas(canvas_border_rect)
498
483
 
499
 
    def _fit_inside_canvas(self, canvas_border_rect):
 
484
    def do_fit_inside_canvas(self, canvas_border_rect):
500
485
        """
501
486
        Scale item and its children to fit inside the given canvas_rect.
502
487
        """
860
845
            return Rect()
861
846
        return bounds
862
847
 
863
 
    def _fit_inside_canvas(self, canvas_border_rect):
 
848
    def do_fit_inside_canvas(self, canvas_border_rect):
864
849
        """ Scale items to fit inside the given canvas_rect """
865
850
 
866
 
        LayoutItem._fit_inside_canvas(self, canvas_border_rect)
 
851
        LayoutItem.do_fit_inside_canvas(self, canvas_border_rect)
867
852
 
868
853
        axis = 0 if self.horizontal else 1
869
854
        items = self.items
935
920
            r = Rect(*canvas_rect)
936
921
            r[axis]   = canvas_rect[axis] + position
937
922
            r[axis+2] = canvas_length
938
 
            item._fit_inside_canvas(r)
 
923
            item.do_fit_inside_canvas(r)
939
924
 
940
925
            position += canvas_length + spacing
941
926
 
967
952
    # Don't extend bounding box into invisibles
968
953
    compact = False
969
954
 
970
 
    def _fit_inside_canvas(self, canvas_border_rect):
 
955
    def do_fit_inside_canvas(self, canvas_border_rect):
971
956
        """
972
957
        Scale panel to fit inside the given canvas_rect.
973
958
        """
974
 
        LayoutItem._fit_inside_canvas(self, canvas_border_rect)
 
959
        LayoutItem.do_fit_inside_canvas(self, canvas_border_rect)
975
960
 
976
961
        # Setup children's transformations, take care of the border.
977
962
        if self.get_border_rect().is_empty():
985
970
 
986
971
            for item in self.items:
987
972
                rect = context.log_to_canvas_rect(item.context.log_rect)
988
 
                item._fit_inside_canvas(rect)
 
973
                item.do_fit_inside_canvas(rect)
989
974
 
990
975
    def _update_log_rect(self):
991
976
        self.context.log_rect = self._calc_bounds()