From d88945ee01230148308edeb68ad8787eec3adabd Mon Sep 17 00:00:00 2001 From: chrys Date: Thu, 2 Feb 2017 20:02:20 +0100 Subject: [PATCH] add functions to pan (respect panSize) --- config/settings/espeak.settings.conf | 4 ++-- config/settings/settings.conf | 4 ++-- config/settings/settings.conf.chrys | 4 ++-- config/settings/settings.conf.storm | 4 ++-- src/fenrir/core/outputManager.py | 26 +++++++++++++++++++++++--- src/fenrir/core/settings.py | 2 +- 6 files changed, 32 insertions(+), 12 deletions(-) diff --git a/config/settings/espeak.settings.conf b/config/settings/espeak.settings.conf index f91a7ab9..5a9e2e93 100644 --- a/config/settings/espeak.settings.conf +++ b/config/settings/espeak.settings.conf @@ -89,9 +89,9 @@ fixCursorOnCell=-1 # review = priority to review # last = follow last used cursor cursorFollowMode=review -# number of cells in panning +# number of cells in panning (horizontal) # 0 = display size, >0 number of cells -panSize=0 +panSizeHorizontal=0 [screen] driver=vcsaDriver diff --git a/config/settings/settings.conf b/config/settings/settings.conf index 6cbed664..ef7ff187 100644 --- a/config/settings/settings.conf +++ b/config/settings/settings.conf @@ -90,9 +90,9 @@ fixCursorOnCell=-1 # review = priority to review # last = follow last used cursor cursorFollowMode=review -# number of cells in panning +# number of cells in panning (horizontal) # 0 = display size, >0 number of cells -panSize=0 +panSizeHorizontal=0 [screen] driver=vcsaDriver diff --git a/config/settings/settings.conf.chrys b/config/settings/settings.conf.chrys index c154090c..ae31032a 100644 --- a/config/settings/settings.conf.chrys +++ b/config/settings/settings.conf.chrys @@ -89,9 +89,9 @@ fixCursorOnCell=-1 # review = priority to review # last = follow last used cursor cursorFollowMode=review -# number of cells in panning +# number of cells in panning (horizontal) # 0 = display size, >0 number of cells -panSize=0 +panSizeHorizontal=0 [screen] driver=vcsaDriver diff --git a/config/settings/settings.conf.storm b/config/settings/settings.conf.storm index 8efa1b0f..d00d350b 100644 --- a/config/settings/settings.conf.storm +++ b/config/settings/settings.conf.storm @@ -47,9 +47,9 @@ fixCursorOnCell=-1 # review = priority to review # last = follow last used cursor cursorFollowMode=review -# number of cells in panning +# number of cells in panning (horizontal) # 0 = display size, >0 number of cells -panSize=0 +panSizeHorizontal=0 [screen] driver=vcsaDriver diff --git a/src/fenrir/core/outputManager.py b/src/fenrir/core/outputManager.py index 73ac8760..12d06b95 100644 --- a/src/fenrir/core/outputManager.py +++ b/src/fenrir/core/outputManager.py @@ -139,13 +139,33 @@ class outputManager(): if self.env['runtime']['settingsManager'].getSettingAsInt('braille', 'fixCursorOnCell') == -1: return self.env['runtime']['brailleDriver'].getDeviceSize()[0] return self.env['runtime']['settingsManager'].getSettingAsInt('braille', 'fixCursorOnCell') - + def getActiveOffset(self): + if self.env['output']['messageOffset']: + return self.env['output']['messageOffset'] + return self.env['output']['cursorOffset'] + def getHorizontalPanSize(self): + size = self.env['runtime']['brailleDriver'].getDeviceSize() + if self.env['runtime']['settingsManager'].getSettingAsInt('braille', 'panSizeHorizontal') <= 0: + return size[0] + if self.env['runtime']['settingsManager'].getSettingAsInt('braille', 'panSizeHorizontal') >= size[0]: + return size[0] + return self.env['runtime']['settingsManager'].getSettingAsInt('braille', 'panSizeHorizontal') + def getHorizontalPanLevel(self,offsetChange = 0): + panSize = self.getHorizontalPanSize() + offset = self.getActiveOffset() + if not offset: + offset = self.getBrailleCursor() + offsetStart = (int(offset['x'] / panSize) + offsetChange) * panSize + def panLeft(self): + return self.getHorizontalPanLevel(-1) + def panRight(self): + return self.getHorizontalPanLevel(1) def getBrailleTextWithOffset(self, text, offset = None, cursor = None): if text == '': return '' size = self.env['runtime']['brailleDriver'].getDeviceSize() - offsetText = text + if cursor and not offset: if self.env['runtime']['settingsManager'].getSetting('braille', 'cursorFollowMode').upper() == 'FIXCELL': #fix cell @@ -160,7 +180,7 @@ class outputManager(): offsetStart = len(offsetText) - 1 else: # page and fallback - offsetStart = int(cursor / size[0]) * size[0] + offsetStart = int(cursor['x'] / size[0]) * size[0] else: if not offset: offset = {'x':0,'y':0} diff --git a/src/fenrir/core/settings.py b/src/fenrir/core/settings.py index 45ccb131..85fb4bf7 100644 --- a/src/fenrir/core/settings.py +++ b/src/fenrir/core/settings.py @@ -36,7 +36,7 @@ settings = { 'cursorFocusMode':'page', # page,fixCell 'fixCursorOnCell': -1, 'cursorFollowMode': 'review', # none, review, last, text - 'panSize': 0 # 0 display size + 'panSizeHorizontal': 0 # 0 = display size }, 'screen':{ 'driver': 'vcsaDriver',