aboutsummaryrefslogtreecommitdiff
path: root/bin/world.py
diff options
context:
space:
mode:
authorPaul Oliver <contact@pauloliver.dev>2024-02-29 02:29:14 +0100
committerPaul Oliver <contact@pauloliver.dev>2024-02-29 02:29:14 +0100
commitc83a79dc96d0745b390a46e272cbfb59533b23d3 (patch)
tree8caa388e0c5b3b8f84ac6fe2c9b1dd0b70bd809c /bin/world.py
parent76979c3530ed5303946cbb94657b3ba50c757e01 (diff)
Fast vertical pan on World page.
[#24] Capital W and S keys now apply fast vertical pan on World page.
Diffstat (limited to 'bin/world.py')
-rw-r--r--bin/world.py24
1 files changed, 18 insertions, 6 deletions
diff --git a/bin/world.py b/bin/world.py
index 31674f2..08f2734 100644
--- a/bin/world.py
+++ b/bin/world.py
@@ -113,18 +113,25 @@ class World:
max_pos = self.__sim.lib.sal_mem_get_size() - 1
self.pos = min(self.pos + self.zoom, max_pos)
- def pan_down(self):
- """ Pan world downward (pos += zoom * columns).
+ def pan_down(self, fast=False):
+ """ Pan world downward.
"""
if self.__is_world_editable():
- self.pos = max(self.pos - self.__get_line_area(), 0)
+ if fast:
+ self.pos = max(self.pos - self.__get_world_area(), 0)
+ else:
+ self.pos = max(self.pos - self.__get_line_area(), 0)
- def pan_up(self):
- """ Pan world upward (pos -= zoom * columns).
+ def pan_up(self, fast=False):
+ """ Pan world upward.
"""
if self.__is_world_editable():
max_pos = self.__sim.lib.sal_mem_get_size() - 1
- self.pos = min(self.pos + self.__get_line_area(), max_pos)
+
+ if fast:
+ self.pos = min(self.pos + self.__get_world_area(), max_pos)
+ else:
+ self.pos = min(self.pos + self.__get_line_area(), max_pos)
def pan_reset(self):
""" Set world position to zero.
@@ -265,3 +272,8 @@ class World:
line_size = self.__printer.size[1] - self.PADDING
line_area = self.zoom * line_size
return line_area
+
+ def __get_world_area(self):
+ """ Return amount of bytes contained in the entire WORLD view.
+ """
+ return self.__get_line_area() * self.__printer.size[0]