コード例 #1
0
 def _create_component(self):
     box = Box(bounds=[100.0, 100.0], position=[50.0, 50.0])
     box.tools.append(
         ResizeTool(component=box,
                    hotspots=set([
                        "top", "left", "right", "bottom", "top left",
                        "top right", "bottom left", "bottom right"
                    ])))
     container = Container(bounds=[500, 500])
     container.add(box)
     return container
コード例 #2
0
class DragToolTestCase(unittest.TestCase):
    def setUp(self):
        self.component = Component(position=[50, 50],
                                   bounds=[100, 100],
                                   padding=10)
        self.tool = ResizeTool(component=self.component)

    def test_find_hotspots(self):
        points_and_results = [
            # corners and edges
            ([50, 50], 'bottom left'),
            ([50, 100], 'left'),
            ([50, 150], 'top left'),
            ([100, 50], 'bottom'),
            ([100, 100], ''),
            ([100, 150], 'top'),
            ([150, 50], 'bottom right'),
            ([150, 100], 'right'),
            ([150, 150], 'top right'),
            # just inside threshhold
            ([60, 60], 'bottom left'),
            ([60, 100], 'left'),
            ([60, 140], 'top left'),
            ([100, 50], 'bottom'),
            ([100, 140], 'top'),
            ([140, 60], 'bottom right'),
            ([140, 100], 'right'),
            ([140, 140], 'top right'),
            # just outside box
            ([49, 49], ''),
            ([49, 50], ''),
            ([50, 49], ''),
            ([49, 100], ''),
            ([49, 151], ''),
            ([50, 151], ''),
            ([49, 150], ''),
            ([100, 49], ''),
            ([100, 151], ''),
            ([151, 49], ''),
            ([150, 49], ''),
            ([151, 50], ''),
            ([151, 100], ''),
            ([151, 151], ''),
            ([150, 151], ''),
            ([151, 150], ''),
            # just outside threshhold
            ([61, 61], ''),
            ([60, 61], 'left'),
            ([61, 60], 'bottom'),
            ([61, 100], ''),
            ([61, 139], ''),
            ([60, 139], 'left'),
            ([61, 140], 'top'),
            ([100, 61], ''),
            ([100, 139], ''),
            ([139, 61], ''),
            ([140, 61], 'right'),
            ([139, 60], 'bottom'),
            ([139, 100], ''),
            ([139, 139], ''),
            ([140, 139], 'right'),
            ([139, 140], 'top'),
        ]
        for (x, y), result in points_and_results:
            value = self.tool._find_hotspot(x, y)
            self.assertEqual(
                value, result, "Failed at (%f, %f): expected %s, got %s" %
                (x, y, result, value))

    def test_set_delta_left(self):
        self.tool._selected_hotspot = 'left'
        value = (self.component.position[:], self.component.bounds[:])
        deltas_and_results = [
            ([10, 10], ([60, 50], [90, 100])),
            ([-10, 10], ([40, 50], [110, 100])),
            ([10, -10], ([60, 50], [90, 100])),
            ([-10, -10], ([40, 50], [110, 100])),
            ([90, 10], ([130, 50], [20, 100])),
            ([80, 10], ([130, 50], [20, 100])),
            ([79, 10], ([129, 50], [21, 100])),
        ]
        for (x, y), (position, bounds) in deltas_and_results:
            self.tool.set_delta(value, x, y)
            self.assertEqual(self.component.position, position)
            self.assertEqual(self.component.bounds, bounds)

    def test_set_delta_right(self):
        self.tool._selected_hotspot = 'right'
        value = (self.component.position[:], self.component.bounds[:])
        deltas_and_results = [
            ([10, 10], ([50, 50], [110, 100])),
            ([-10, 10], ([50, 50], [90, 100])),
            ([10, -10], ([50, 50], [110, 100])),
            ([-10, -10], ([50, 50], [90, 100])),
            ([-90, 10], ([50, 50], [20, 100])),
            ([-80, 10], ([50, 50], [20, 100])),
            ([-79, 10], ([50, 50], [21, 100])),
        ]
        for (x, y), (position, bounds) in deltas_and_results:
            self.tool.set_delta(value, x, y)
            self.assertEqual(self.component.position, position)
            self.assertEqual(self.component.bounds, bounds)

    def test_set_delta_bottom(self):
        self.tool._selected_hotspot = 'bottom'
        value = (self.component.position[:], self.component.bounds[:])
        deltas_and_results = [
            ([10, 10], ([50, 60], [100, 90])),
            ([-10, 10], ([50, 60], [100, 90])),
            ([10, -10], ([50, 40], [100, 110])),
            ([-10, -10], ([50, 40], [100, 110])),
            ([10, 90], ([50, 130], [100, 20])),
            ([10, 80], ([50, 130], [100, 20])),
            ([10, 79], ([50, 129], [100, 21])),
        ]
        for (x, y), (position, bounds) in deltas_and_results:
            self.tool.set_delta(value, x, y)
            self.assertEqual(self.component.position, position)
            self.assertEqual(self.component.bounds, bounds)

    def test_set_delta_top(self):
        self.tool._selected_hotspot = 'top'
        value = (self.component.position[:], self.component.bounds[:])
        deltas_and_results = [
            ([10, 10], ([50, 50], [100, 110])),
            ([-10, 10], ([50, 50], [100, 110])),
            ([10, -10], ([50, 50], [100, 90])),
            ([-10, -10], ([50, 50], [100, 90])),
            ([10, -90], ([50, 50], [100, 20])),
            ([10, -80], ([50, 50], [100, 20])),
            ([10, -79], ([50, 50], [100, 21])),
        ]
        for (x, y), (position, bounds) in deltas_and_results:
            self.tool.set_delta(value, x, y)
            self.assertEqual(self.component.position, position)
            self.assertEqual(self.component.bounds, bounds)
コード例 #3
0
 def setUp(self):
     self.component = Component(position=[50, 50],
                                bounds=[100, 100],
                                padding=10)
     self.tool = ResizeTool(component=self.component)
コード例 #4
0
ファイル: resize_tool_test.py プロジェクト: enthought/enable
class DragToolTestCase(unittest.TestCase):
    def setUp(self):
        self.component = Component(position=[50, 50], bounds=[100, 100], padding=10)
        self.tool = ResizeTool(component=self.component)

    def test_find_hotspots(self):
        points_and_results = [
            # corners and edges
            ([50, 50], "bottom left"),
            ([50, 100], "left"),
            ([50, 150], "top left"),
            ([100, 50], "bottom"),
            ([100, 100], ""),
            ([100, 150], "top"),
            ([150, 50], "bottom right"),
            ([150, 100], "right"),
            ([150, 150], "top right"),
            # just inside threshhold
            ([60, 60], "bottom left"),
            ([60, 100], "left"),
            ([60, 140], "top left"),
            ([100, 50], "bottom"),
            ([100, 140], "top"),
            ([140, 60], "bottom right"),
            ([140, 100], "right"),
            ([140, 140], "top right"),
            # just outside box
            ([49, 49], ""),
            ([49, 50], ""),
            ([50, 49], ""),
            ([49, 100], ""),
            ([49, 151], ""),
            ([50, 151], ""),
            ([49, 150], ""),
            ([100, 49], ""),
            ([100, 151], ""),
            ([151, 49], ""),
            ([150, 49], ""),
            ([151, 50], ""),
            ([151, 100], ""),
            ([151, 151], ""),
            ([150, 151], ""),
            ([151, 150], ""),
            # just outside threshhold
            ([61, 61], ""),
            ([60, 61], "left"),
            ([61, 60], "bottom"),
            ([61, 100], ""),
            ([61, 139], ""),
            ([60, 139], "left"),
            ([61, 140], "top"),
            ([100, 61], ""),
            ([100, 139], ""),
            ([139, 61], ""),
            ([140, 61], "right"),
            ([139, 60], "bottom"),
            ([139, 100], ""),
            ([139, 139], ""),
            ([140, 139], "right"),
            ([139, 140], "top"),
        ]
        for (x, y), result in points_and_results:
            value = self.tool._find_hotspot(x, y)
            self.assertEqual(value, result, "Failed at (%f, %f): expected %s, got %s" % (x, y, result, value))

    def test_set_delta_left(self):
        self.tool._selected_hotspot = "left"
        value = (self.component.position[:], self.component.bounds[:])
        deltas_and_results = [
            ([10, 10], ([60, 50], [90, 100])),
            ([-10, 10], ([40, 50], [110, 100])),
            ([10, -10], ([60, 50], [90, 100])),
            ([-10, -10], ([40, 50], [110, 100])),
            ([90, 10], ([130, 50], [20, 100])),
            ([80, 10], ([130, 50], [20, 100])),
            ([79, 10], ([129, 50], [21, 100])),
        ]
        for (x, y), (position, bounds) in deltas_and_results:
            self.tool.set_delta(value, x, y)
            self.assertEqual(self.component.position, position)
            self.assertEqual(self.component.bounds, bounds)

    def test_set_delta_right(self):
        self.tool._selected_hotspot = "right"
        value = (self.component.position[:], self.component.bounds[:])
        deltas_and_results = [
            ([10, 10], ([50, 50], [110, 100])),
            ([-10, 10], ([50, 50], [90, 100])),
            ([10, -10], ([50, 50], [110, 100])),
            ([-10, -10], ([50, 50], [90, 100])),
            ([-90, 10], ([50, 50], [20, 100])),
            ([-80, 10], ([50, 50], [20, 100])),
            ([-79, 10], ([50, 50], [21, 100])),
        ]
        for (x, y), (position, bounds) in deltas_and_results:
            self.tool.set_delta(value, x, y)
            self.assertEqual(self.component.position, position)
            self.assertEqual(self.component.bounds, bounds)

    def test_set_delta_bottom(self):
        self.tool._selected_hotspot = "bottom"
        value = (self.component.position[:], self.component.bounds[:])
        deltas_and_results = [
            ([10, 10], ([50, 60], [100, 90])),
            ([-10, 10], ([50, 60], [100, 90])),
            ([10, -10], ([50, 40], [100, 110])),
            ([-10, -10], ([50, 40], [100, 110])),
            ([10, 90], ([50, 130], [100, 20])),
            ([10, 80], ([50, 130], [100, 20])),
            ([10, 79], ([50, 129], [100, 21])),
        ]
        for (x, y), (position, bounds) in deltas_and_results:
            self.tool.set_delta(value, x, y)
            self.assertEqual(self.component.position, position)
            self.assertEqual(self.component.bounds, bounds)

    def test_set_delta_top(self):
        self.tool._selected_hotspot = "top"
        value = (self.component.position[:], self.component.bounds[:])
        deltas_and_results = [
            ([10, 10], ([50, 50], [100, 110])),
            ([-10, 10], ([50, 50], [100, 110])),
            ([10, -10], ([50, 50], [100, 90])),
            ([-10, -10], ([50, 50], [100, 90])),
            ([10, -90], ([50, 50], [100, 20])),
            ([10, -80], ([50, 50], [100, 20])),
            ([10, -79], ([50, 50], [100, 21])),
        ]
        for (x, y), (position, bounds) in deltas_and_results:
            self.tool.set_delta(value, x, y)
            self.assertEqual(self.component.position, position)
            self.assertEqual(self.component.bounds, bounds)
コード例 #5
0
ファイル: resize_tool_test.py プロジェクト: enthought/enable
 def setUp(self):
     self.component = Component(position=[50, 50], bounds=[100, 100], padding=10)
     self.tool = ResizeTool(component=self.component)