Skip to content

Commit 36d2ad3

Browse files
authored
Merge 5e35658 into d1ce3bc
2 parents d1ce3bc + 5e35658 commit 36d2ad3

1 file changed

Lines changed: 73 additions & 1 deletion

File tree

source/NVDAObjects/window/excel.py

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# A part of NonVisual Desktop Access (NVDA)
2-
# Copyright (C) 2006-2022 NV Access Limited, Dinesh Kaushal, Siddhartha Gupta, Accessolutions, Julien Cochuyt,
2+
# Copyright (C) 2006-2023 NV Access Limited, Dinesh Kaushal, Siddhartha Gupta, Accessolutions, Julien Cochuyt,
33
# Cyrille Bougot
44
# This file is covered by the GNU General Public License.
55
# See the file COPYING for more details.
@@ -976,6 +976,78 @@ def script_changeSelection(self,gesture):
976976
newSelection.parent=oldSelection.parent
977977
eventHandler.executeEvent('gainFocus',newSelection)
978978

979+
def toggleBooleanAttribute(self, gesture, getStateFun, msgOff, msgOn):
980+
gesture.send()
981+
sel = self._getSelection()
982+
if isinstance(sel, ExcelCell):
983+
selObj = sel.excelCellObject
984+
elif isinstance(sel, ExcelSelection):
985+
selObj = sel.excelRangeObject
986+
else:
987+
return
988+
enabled = getStateFun(selObj)
989+
if enabled:
990+
ui.message(msgOn)
991+
else:
992+
ui.message(msgOff)
993+
994+
@script(
995+
gestures=["kb:control+b", "kb:control+shift+2"],
996+
canPropagate=True,
997+
)
998+
def script_toggleBold(self, gesture):
999+
self.toggleBooleanAttribute(
1000+
gesture,
1001+
lambda cellOrRange: cellOrRange.font.bold,
1002+
# Translators: a message when toggling formatting in Microsoft Excel
1003+
msgOff=_('Bold off'),
1004+
# Translators: a message when toggling formatting in Microsoft Excel
1005+
msgOn=_('Bold on'),
1006+
)
1007+
1008+
@script(
1009+
gestures=["kb:control+i", "kb:control+shift+3"],
1010+
canPropagate=True,
1011+
)
1012+
def script_toggleItalic(self, gesture):
1013+
self.toggleBooleanAttribute(
1014+
gesture,
1015+
lambda cellOrRange: cellOrRange.font.italic,
1016+
# Translators: a message when toggling formatting in Microsoft Excel
1017+
msgOff=_('Italic off'),
1018+
# Translators: a message when toggling formatting in Microsoft Excel
1019+
msgOn=_('Italic on'),
1020+
)
1021+
1022+
@script(
1023+
gestures=["kb:control+u", "kb:control+shift+4"],
1024+
canPropagate=True,
1025+
)
1026+
def script_toggleUnderline(self, gesture):
1027+
self.toggleBooleanAttribute(
1028+
gesture,
1029+
lambda cellOrRange: cellOrRange.font.underline != xlUnderlineStyleNone,
1030+
# Translators: a message when toggling formatting in Microsoft Excel
1031+
msgOff=_('Underline off'),
1032+
# Translators: a message when toggling formatting in Microsoft Excel
1033+
msgOn=_('Underline on'),
1034+
)
1035+
1036+
@script(
1037+
gesture="kb:control+shift+5",
1038+
canPropagate=True,
1039+
)
1040+
def script_toggleStrikethrough(self, gesture):
1041+
self.toggleBooleanAttribute(
1042+
gesture,
1043+
lambda cellOrRange: cellOrRange.font.strikethrough,
1044+
# Translators: a message when toggling formatting in Microsoft Excel
1045+
msgOff=_('Strikethrough off'),
1046+
# Translators: a message when toggling formatting in Microsoft Excel
1047+
msgOn=_('Strikethrough on'),
1048+
)
1049+
1050+
9791051
class ExcelCellTextInfo(NVDAObjectTextInfo):
9801052

9811053
def _getFormatFieldAndOffsets(self,offset,formatConfig,calculateOffsets=True):

0 commit comments

Comments
 (0)