office-gobmx/officecfg/util/AcceleratorKeyChecker.fodt
Niklas Johansson e667bcfa17 Add tool to check for duplicate accelerators
The tool mentioned in tdf#94865. It should be possible to use in
any installed locale. It uses the accessibility api to read the menus
and retrieve the menu items and it's associated accelerator keys.

Change-Id: I3abe1bff526db15e40c5cf792588c5eda1fbedad
Reviewed-on: https://gerrit.libreoffice.org/22039
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2016-04-04 07:42:53 +00:00

771 lines
No EOL
58 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.text">
<office:meta><meta:creation-date>2015-09-24T00:23:17.450000000</meta:creation-date><dc:date>2016-02-12T08:27:37.426000000</dc:date><meta:editing-duration>PT2H10M43S</meta:editing-duration><meta:editing-cycles>75</meta:editing-cycles><meta:generator>LibreOfficeDev/5.2.0.0.alpha0$Windows_x86 LibreOffice_project/f14d271d31e75de09821cf1766c7ab2a9c6e0461</meta:generator><meta:document-statistic meta:table-count="0" meta:image-count="0" meta:object-count="0" meta:page-count="1" meta:paragraph-count="11" meta:word-count="235" meta:character-count="1250" meta:non-whitespace-character-count="1030"/></office:meta>
<office:settings>
<config:config-item-set config:name="ooo:view-settings">
<config:config-item config:name="ViewAreaTop" config:type="long">0</config:config-item>
<config:config-item config:name="ViewAreaLeft" config:type="long">0</config:config-item>
<config:config-item config:name="ViewAreaWidth" config:type="long">26407</config:config-item>
<config:config-item config:name="ViewAreaHeight" config:type="long">15162</config:config-item>
<config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item>
<config:config-item config:name="InBrowseMode" config:type="boolean">false</config:config-item>
<config:config-item-map-indexed config:name="Views">
<config:config-item-map-entry>
<config:config-item config:name="ViewId" config:type="string">view2</config:config-item>
<config:config-item config:name="ViewLeft" config:type="long">11382</config:config-item>
<config:config-item config:name="ViewTop" config:type="long">4362</config:config-item>
<config:config-item config:name="VisibleLeft" config:type="long">0</config:config-item>
<config:config-item config:name="VisibleTop" config:type="long">0</config:config-item>
<config:config-item config:name="VisibleRight" config:type="long">26405</config:config-item>
<config:config-item config:name="VisibleBottom" config:type="long">15161</config:config-item>
<config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
<config:config-item config:name="ViewLayoutColumns" config:type="short">1</config:config-item>
<config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item>
<config:config-item config:name="ZoomFactor" config:type="short">100</config:config-item>
<config:config-item config:name="IsSelectedFrame" config:type="boolean">false</config:config-item>
</config:config-item-map-entry>
</config:config-item-map-indexed>
</config:config-item-set>
<config:config-item-set config:name="ooo:configuration-settings">
<config:config-item config:name="ProtectForm" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrinterName" config:type="string"/>
<config:config-item config:name="EmbeddedDatabaseName" config:type="string"/>
<config:config-item config:name="CurrentDatabaseDataSource" config:type="string">Bröllopsgäster</config:config-item>
<config:config-item config:name="LinkUpdateMode" config:type="short">1</config:config-item>
<config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item>
<config:config-item config:name="FloattableNomargins" config:type="boolean">false</config:config-item>
<config:config-item config:name="UnbreakableNumberings" config:type="boolean">false</config:config-item>
<config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item>
<config:config-item config:name="BackgroundParaOverDrawings" config:type="boolean">false</config:config-item>
<config:config-item config:name="AddParaTableSpacing" config:type="boolean">true</config:config-item>
<config:config-item config:name="ChartAutoUpdate" config:type="boolean">true</config:config-item>
<config:config-item config:name="CurrentDatabaseCommand" config:type="string"/>
<config:config-item config:name="AlignTabStopPosition" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
<config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item>
<config:config-item config:name="CharacterCompressionType" config:type="short">0</config:config-item>
<config:config-item config:name="ApplyUserData" config:type="boolean">true</config:config-item>
<config:config-item config:name="SaveGlobalDocumentLinks" config:type="boolean">false</config:config-item>
<config:config-item config:name="SurroundTextWrapSmall" config:type="boolean">false</config:config-item>
<config:config-item config:name="SmallCapsPercentage66" config:type="boolean">false</config:config-item>
<config:config-item config:name="CurrentDatabaseCommandType" config:type="int">0</config:config-item>
<config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item>
<config:config-item config:name="UpdateFromTemplate" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrintSingleJobs" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrinterIndependentLayout" config:type="string">high-resolution</config:config-item>
<config:config-item config:name="EmbedSystemFonts" config:type="boolean">false</config:config-item>
<config:config-item config:name="DoNotCaptureDrawObjsOnPage" config:type="boolean">false</config:config-item>
<config:config-item config:name="UseFormerObjectPositioning" config:type="boolean">false</config:config-item>
<config:config-item config:name="IsLabelDocument" config:type="boolean">false</config:config-item>
<config:config-item config:name="AddFrameOffsets" config:type="boolean">false</config:config-item>
<config:config-item config:name="AddExternalLeading" config:type="boolean">true</config:config-item>
<config:config-item config:name="UseOldNumbering" config:type="boolean">false</config:config-item>
<config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item>
<config:config-item config:name="DoNotResetParaAttrsForNumFont" config:type="boolean">false</config:config-item>
<config:config-item config:name="IgnoreFirstLineIndentInNumbering" config:type="boolean">false</config:config-item>
<config:config-item config:name="AllowPrintJobCancel" config:type="boolean">true</config:config-item>
<config:config-item config:name="UseFormerLineSpacing" config:type="boolean">false</config:config-item>
<config:config-item config:name="AddParaSpacingToTableCells" config:type="boolean">true</config:config-item>
<config:config-item config:name="UseFormerTextWrapping" config:type="boolean">false</config:config-item>
<config:config-item config:name="RedlineProtectionKey" config:type="base64Binary"/>
<config:config-item config:name="ConsiderTextWrapOnObjPos" config:type="boolean">false</config:config-item>
<config:config-item config:name="DoNotJustifyLinesWithManualBreak" config:type="boolean">false</config:config-item>
<config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item>
<config:config-item config:name="TableRowKeep" config:type="boolean">false</config:config-item>
<config:config-item config:name="TabsRelativeToIndent" config:type="boolean">true</config:config-item>
<config:config-item config:name="IgnoreTabsAndBlanksForLineCalculation" config:type="boolean">false</config:config-item>
<config:config-item config:name="RsidRoot" config:type="int">1854555</config:config-item>
<config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item>
<config:config-item config:name="ClipAsCharacterAnchoredWriterFlyFrames" config:type="boolean">false</config:config-item>
<config:config-item config:name="UnxForceZeroExtLeading" config:type="boolean">false</config:config-item>
<config:config-item config:name="UseOldPrinterMetrics" config:type="boolean">false</config:config-item>
<config:config-item config:name="TabAtLeftIndentForParagraphsInList" config:type="boolean">false</config:config-item>
<config:config-item config:name="Rsid" config:type="int">3406469</config:config-item>
<config:config-item config:name="ApplyParagraphMarkFormatToNumbering" config:type="boolean">false</config:config-item>
<config:config-item config:name="MathBaselineAlignment" config:type="boolean">true</config:config-item>
<config:config-item config:name="InvertBorderSpacing" config:type="boolean">false</config:config-item>
<config:config-item config:name="PropLineSpacingShrinksFirstLine" config:type="boolean">true</config:config-item>
<config:config-item config:name="CollapseEmptyCellPara" config:type="boolean">true</config:config-item>
<config:config-item config:name="TabOverflow" config:type="boolean">true</config:config-item>
<config:config-item config:name="StylesNoDefault" config:type="boolean">false</config:config-item>
<config:config-item config:name="SubtractFlysAnchoredAtFlys" config:type="boolean">false</config:config-item>
<config:config-item config:name="ClippedPictures" config:type="boolean">false</config:config-item>
<config:config-item config:name="TabOverMargin" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrintAnnotationMode" config:type="short">0</config:config-item>
<config:config-item config:name="PrintGraphics" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrintBlackFonts" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrintProspect" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrintLeftPages" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrintControls" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrintPageBackground" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrintTextPlaceholder" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrintDrawings" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrintHiddenText" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrintTables" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrintProspectRTL" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrintReversed" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrintRightPages" config:type="boolean">true</config:config-item>
<config:config-item config:name="PrintFaxName" config:type="string"/>
<config:config-item config:name="PrintPaperFromSetup" config:type="boolean">false</config:config-item>
<config:config-item config:name="PrintEmptyPages" config:type="boolean">false</config:config-item>
</config:config-item-set>
</office:settings>
<office:scripts>
<office:script script:language="ooo:Basic">
<ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink">
<ooo:library-embedded ooo:name="Standard"/>
<ooo:library-embedded ooo:name="AcceleratorKeyCheck">
<ooo:module ooo:name="AccNameProvider">
<ooo:source-code>REM ***** BASIC *****
Dim ROLEMAP As Object
Sub Main
&apos; msgbox getNameOfAccessibleRole(40)
&apos; msgbox getNameOfAccessibleRole(57)
End Sub
Function getNameOfAccessibleRole(sID As Integer)
If IsNull(ROLEMAP) Then
initializeRoleMap
End If
If ROLEMAP.containsKey(sID) Then
getNameOfAccessibleRole = ROLEMAP.get(sID)
Else
MsgBox &quot;Could not find the name for the AccessibleRole: &quot; &amp; sID
End If
End Function
Sub initializeRoleMap
ROLEMAP = com.sun.star.container.EnumerableMap.create(&quot;short&quot;, &quot;string&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.UNKNOWN, &quot;UNKNOWN&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.ALERT, &quot;ALERT&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.COLUMN_HEADER, &quot;COLUMN_HEADER&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.CANVAS, &quot;CANVAS&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.CHECK_BOX, &quot;CHECK_BOX&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.CHECK_MENU_ITEM, &quot;CHECK_MENU_ITEM&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.COLOR_CHOOSER, &quot;COLOR_CHOOSER&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.COMBO_BOX, &quot;COMBO_BOX&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.DATE_EDITOR, &quot;DATE_EDITOR&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.DESKTOP_ICON, &quot;DESKTOP_ICON&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.DESKTOP_PANE, &quot;DESKTOP_PANE&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.DIRECTORY_PANE, &quot;DIRECTORY_PANE&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.DIALOG, &quot;DIALOG&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.DOCUMENT, &quot;DOCUMENT&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.EMBEDDED_OBJECT, &quot;EMBEDDED_OBJECT&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.END_NOTE, &quot;END_NOTE&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.FILE_CHOOSER, &quot;FILE_CHOOSER&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.FILLER, &quot;FILLER&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.FONT_CHOOSER, &quot;FONT_CHOOSER&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.FOOTER, &quot;FOOTER&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.FOOTNOTE, &quot;FOOTNOTE&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.FRAME, &quot;FRAME&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.GLASS_PANE, &quot;GLASS_PANE&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.GRAPHIC, &quot;GRAPHIC&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.GROUP_BOX, &quot;GROUP_BOX&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.HEADER, &quot;HEADER&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.HEADING, &quot;HEADING&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.HYPER_LINK, &quot;HYPER_LINK&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.ICON, &quot;ICON&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.INTERNAL_FRAME, &quot;INTERNAL_FRAME&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.LABEL, &quot;LABEL&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.LAYERED_PANE, &quot;LAYERED_PANE&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.LIST, &quot;LIST&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.LIST_ITEM, &quot;LIST_ITEM&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.MENU, &quot;MENU&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.MENU_BAR, &quot;MENU_BAR&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.MENU_ITEM, &quot;MENU_ITEM&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.OPTION_PANE, &quot;OPTION_PANE&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.PAGE_TAB, &quot;PAGE_TAB&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.PAGE_TAB_LIST, &quot;PAGE_TAB_LIST&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.PANEL, &quot;PANEL&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.PARAGRAPH, &quot;PARAGRAPH&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.PASSWORD_TEXT, &quot;PASSWORD_TEXT&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.POPUP_MENU, &quot;POPUP_MENU&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.PUSH_BUTTON, &quot;PUSH_BUTTON&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.PROGRESS_BAR, &quot;PROGRESS_BAR&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.RADIO_BUTTON, &quot;RADIO_BUTTON&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.RADIO_MENU_ITEM, &quot;RADIO_MENU_ITEM&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.ROW_HEADER, &quot;ROW_HEADER&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.ROOT_PANE, &quot;ROOT_PANE&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.SCROLL_BAR, &quot;SCROLL_BAR&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.SCROLL_PANE, &quot;SCROLL_PANE&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.SHAPE, &quot;SHAPE&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.SEPARATOR, &quot;SEPARATOR&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.SLIDER, &quot;SLIDER&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.SPIN_BOX, &quot;SPIN_BOX&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.SPLIT_PANE, &quot;SPLIT_PANE&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.STATUS_BAR, &quot;STATUS_BAR&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.TABLE, &quot;TABLE&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.TABLE_CELL, &quot;TABLE_CELL&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.TEXT, &quot;TEXT&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.TEXT_FRAME, &quot;TEXT_FRAME&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.TOGGLE_BUTTON, &quot;TOGGLE_BUTTON&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.TOOL_BAR, &quot;TOOL_BAR&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.TOOL_TIP, &quot;TOOL_TIP&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.TREE, &quot;TREE&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.VIEW_PORT, &quot;VIEW_PORT&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.WINDOW, &quot;WINDOW&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.BUTTON_DROPDOWN, &quot;BUTTON_DROPDOWN&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.BUTTON_MENU, &quot;BUTTON_MENU&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.CAPTION, &quot;CAPTION&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.CHART, &quot;CHART&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.EDIT_BAR, &quot;EDIT_BAR&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.FORM, &quot;FORM&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.IMAGE_MAP, &quot;IMAGE_MAP&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.NOTE, &quot;NOTE&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.PAGE, &quot;PAGE&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.RULER, &quot;RULER&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.SECTION, &quot;SECTION&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.TREE_ITEM, &quot;TREE_ITEM&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.TREE_TABLE, &quot;TREE_TABLE&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.COMMENT, &quot;COMMENT&quot;)
ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.COMMENT_END, &quot;COMMENT_END&quot;)
End Sub
</ooo:source-code>
</ooo:module>
<ooo:module ooo:name="__testMenu">
<ooo:source-code>REM ***** BASIC *****
Option Explicit
Dim oReportCursor As Object
Dim oReportDoc As Object
Dim oReportTable As Object
Dim oComponentName As String
Dim sMenuName As String
Dim hasSubMenu As String
Dim keybinding1 As Object
Dim keybinding2 As Object
Dim accKeyBinding As String
Sub testmenus
Dim sAccName As String
Dim i As Integer, j As Integer, iMenuBarIndex As Integer
Dim oAccChild As Object, oAccContext As Object, accMenu As Object
Dim ComponentsToCheck As Variant, oComponent As Object
GlobalScope.BasicLibraries.LoadLibrary(&quot;Tools&quot;)
oReportDoc = CreateNewDocument(&quot;swriter&quot;)
oReportCursor = oReportDoc.getText().createTextCursor()
ComponentsToCheck() = Array(&quot;Writer&quot;, &quot;Calc&quot;, &quot;Impress&quot;,&quot;Draw&quot;, &quot;Math&quot;)
For Each oComponentName In ComponentsToCheck
oComponent = CreateNewDocument(&quot;s&quot; &amp; LCase(oComponentName))
AccReportHeading(oComponentName, 1)
oAccContext = getAccessibleContextOfDocument(oComponent)
For i = 0 To oAccContext.getAccessibleChildCount -1
oAccChild = oAccContext.getAccessibleChild(i).getAccessibleContext()
sAccName = getNameOfAccessibleRole(oAccChild.AccessibleRole)
If sAccName = &quot;MENU_BAR&quot; Then
iMenuBarIndex = i
AccReportHeading(&quot;Top Level Menu&quot;)
insertReportTable(Array(&quot;Name&quot;, &quot;Accelerator key&quot;, &quot;Has submenu&quot;), oComponentName &amp; &quot;-Top_Level_Menu&quot;)
For j = 0 To oAccChild.getAccessibleChildCount -1
hasSubMenu = &quot;&quot;
accMenu = oAccChild.getAccessibleChild(j).getAccessibleContext()
sMenuName = accMenu.AccessibleName
keybinding1 = accMenu.getAccessibleActionKeyBinding(0).getAccessibleKeyBinding(0)
If accMenu.getAccessibleActionKeyBinding(0).getAccessibleKeyBindingCount() &gt; 1 Then
keybinding2 = accMenu.getAccessibleActionKeyBinding(0).getAccessibleKeyBinding(1)
End If
accKeyBinding = makeKeyStrokeReadable(keybinding1(0), True)
If accMenu.AccessibleChildCount &gt; 0 Then hasSubMenu = &quot;Yes&quot;
insertReportTableContent(Array(sMenuName, accKeyBinding, hasSubMenu))
Next
End If
Next
AddMenuTables oAccContext.getAccessibleChild(iMenuBarIndex).getAccessibleContext
DisposeDocument(oComponent)
Next
CheckTableAndMarkupDuplicates
End Sub
Sub AddMenuTables(accMenuBar)
Dim i As Integer, accMenu As Object
For i = 0 To accMenuBar.getAccessibleChildCount-1
accMenu = accMenuBar.getAccessibleChild(i)
sMenuName = accMenu.AccessibleName
AccReportHeading(accMenu.AccessibleName)
insertReportTable(Array(&quot;Name&quot;, &quot;Accelerator key&quot;, &quot;Has submenu&quot;), oComponentName &amp; &quot;-&quot; &amp; sMenuName)
FillMenuTable accMenu, 2
HandleSubMenues accMenu
Next
End Sub
Sub HandleSubMenues(accMenu, Optional HeadingLevel as Integer)
Dim i As Integer, accMenuItem As Object, sSubMenuName As String
If isMissing(HeadingLevel) Then HeadingLevel = 3
For i = 0 To accMenu.getAccessibleChildCount-1
accMenuItem = accMenu.getAccessibleChild(i)
If getNameOfAccessibleRole(accMenuItem.getAccessibleRole) = &quot;MENU&quot; Then
sSubMenuName = accMenuItem.AccessibleName
AccReportHeading(sSubMenuName, HeadingLevel)
insertReportTable(Array(&quot;Name&quot;, &quot;Accelerator key&quot;, &quot;Has submenu&quot;), oComponentName &amp; &quot;-&quot; &amp; sMenuName &amp; &quot;-&quot; &amp; sSubMenuName)
FillMenuTable accMenuItem
&apos; Take care of submenues of submenues
&apos; Example in Writer: Insert - Shape - Line
HandleSubMenues accMenuItem, HeadingLevel + 1
End If
Next
End Sub
Sub FillMenuTable(accMenu)
Dim i As Integer, accMenuItem As Object
&apos;Check if it is a menu, and open it
If getNameOfAccessibleRole(accMenu.getAccessibleRole) = &quot;MENU&quot; Then
accMenu.doAccessibleAction(0)
End If
For i = 0 To accMenu.getAccessibleChildCount-1
accMenuItem = accMenu.getAccessibleChild(i)
Select Case getNameOfAccessibleRole(accMenuItem.getAccessibleRole)
Case &quot;MENU_ITEM&quot;, &quot;CHECK_MENU_ITEM&quot;, &quot;RADIO_MENU_ITEM&quot;
hasSubMenu = &quot;&quot;
sMenuName = accMenuItem.AccessibleName
keybinding1 = accMenuItem.getAccessibleActionKeyBinding(0).getAccessibleKeyBinding(0)
accKeyBinding = makeKeyStrokeReadable(keybinding1(0))
insertReportTableContent(Array(sMenuName, accKeyBinding, hasSubMenu))
Case &quot;MENU&quot;
hasSubMenu = &quot;Yes&quot;
sMenuName = accMenuItem.AccessibleName
keybinding1 = accMenuItem.getAccessibleActionKeyBinding(0).getAccessibleKeyBinding(0)
accKeyBinding = makeKeyStrokeReadable(keybinding1(0))
insertReportTableContent(Array(sMenuName, accKeyBinding, hasSubMenu))
End Select
Next
End Sub
Function getAccessibleContextOfDocument(oDoc)
Dim oContainerWindow As Object
oContainerWindow = oDoc.getCurrentController().getFrame().getContainerWindow()
getAccessibleContextOfDocument = oContainerWindow.getAccessibleContext()
End Function
Function makeKeyStrokeReadable(oKeyStroke, Optional bIgnoreAltModifier)
Dim sModifiers As String, sMod As String
If isMissing(bIgnoreAltModifier) Then bIgnoreAltModifier = false
sModifiers = cStr(oKeyStroke.Modifiers)
Select Case sModifiers
Case &quot;1&quot;
sMod = &quot;Shift + &quot;
Case &quot;2&quot;
sMod = &quot;Ctrl + &quot;
Case &quot;3&quot;
sMod = &quot;Ctrl + Shift + &quot;
Case &quot;4&quot;
If bIgnoreAltModifier Then
sMod = &quot;&quot;
Else
sMod = &quot;Alt + &quot;
End If
Case &quot;5&quot;
sMod = &quot;Shift + Alt + &quot;
Case &quot;6&quot;
sMod = &quot;Ctrl + Alt + &quot;
Case &quot;7&quot;
sMod = &quot;Ctrl + Shift + Alt + &quot;
Case &quot;0&quot;
sMod = &quot;&quot;
Case Else
sMod = &quot;Are you using Mac? Not sure if this is supported on Mac? Your modifier is: &quot; &amp; sModifiers
End Select
makeKeyStrokeReadable = sMod &amp; UCase(oKeyStroke.KeyChar)
End Function
Sub AccReport(sString)
oReportCursor.setString(sString)
oReportCursor.collapseToEnd()
End Sub
Sub AccReportHeading(sString as string, Optional HeadingLevel as integer)
If IsMissing(HeadingLevel) Then HeadingLevel = 2
oReportCursor.collapseToEnd()
oReportCursor.ParaStyleName = &quot;Heading &quot; &amp; HeadingLevel
oReportCursor.setString(sString &amp; chr(13))
oReportCursor.collapseToEnd()
End Sub
Sub insertReportTable(sColumns(), sTableName As String)
Dim noColumns As Integer, i As Integer
Dim oCell As Object
noColumns = UBound(sColumns)
oReportTable = oReportDoc.createInstance (&quot;com.sun.star.text.TextTable&quot;)
oReportTable.initialize(2, noColumns+1)
oReportTable.HeaderRowCount = 1
oReportTable.RepeatHeadline = true
sTableName = Replace(sTableName, &quot; &quot;, &quot;_&quot;)
sTableName = Replace(sTableName, &quot;.&quot;, &quot;&quot;)
oReportTable.Name = sTableName
oReportCursor.getText().insertTextContent(oReportCursor, oReportTable, False)
For i = 0 To noColumns
oCell = oReportTable.getCellByPosition( i, 0 )
oCell.setString(sColumns(i))
Next
End Sub
Sub insertReportTableContent(sColumns())
Dim noColumns As Integer, iRows As Integer, i As Integer
Dim oCell As Object
noColumns = UBound(sColumns)
iRows = oReportTable.getRows().Count
If iRows = 2 Then
oCell = oReportTable.getCellByPosition(0, iRows-1)
If oCell.getString() &lt;&gt; &quot;&quot; Then
oReportTable.getRows().insertByIndex(iRows,1)
Else
iRows = iRows-1
End If
Else
oReportTable.getRows().insertByIndex(iRows,1)
End If
For i = 0 To noColumns
oCell = oReportTable.getCellByPosition( i, iRows )
oCell.setString(sColumns(i))
Next
End Sub
Sub CheckTableAndMarkupDuplicates
Dim iTable As Integer, oTable As Object
Dim i As Integer, j As Integer
Dim sAccKey1 As String, sAccKey2 As String
For iTable = 0 To oReportDoc.TextTables.Count-1
oTable = oReportDoc.TextTables(iTable)
&apos;First row is a header so we can start at the second row (1)
For i = 1 To oTable.getRows.Count-1
For j = i + 1 To oTable.getRows.Count-1
sAccKey1 = oTable.getCellByPosition(1, i).getString()
sAccKey2 = oTable.getCellByPosition(1, j).getString()
If sAccKey1 = sAccKey2 Then
If oTable.getCellByPosition(2, i).getString() = &quot;Yes&quot; Then
oTable.getRows().getByIndex(i).BackColor = RGB(255, 0, 0)
Else
oTable.getRows().getByIndex(i).BackColor = RGB(255, 255, 0)
End If
If oTable.getCellByPosition(2, j).getString() = &quot;Yes&quot; Then
oTable.getRows().getByIndex(j).BackColor = RGB(255, 0, 0)
Else
oTable.getRows().getByIndex(j).BackColor = RGB(255, 255,0)
End If
End If
Next
Next
Next
End Sub
</ooo:source-code>
</ooo:module>
</ooo:library-embedded>
</ooo:libraries>
</office:script>
</office:scripts>
<office:font-face-decls>
<style:font-face style:name="OpenSymbol" svg:font-family="OpenSymbol" style:font-charset="x-symbol"/>
<style:font-face style:name="Lucida Sans1" svg:font-family="&apos;Lucida Sans&apos;" style:font-family-generic="swiss"/>
<style:font-face style:name="Liberation Serif" svg:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
<style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" style:font-pitch="variable"/>
<style:font-face style:name="Lucida Sans" svg:font-family="&apos;Lucida Sans&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="Microsoft YaHei" svg:font-family="&apos;Microsoft YaHei&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="SimSun" svg:font-family="SimSun" style:font-family-generic="system" style:font-pitch="variable"/>
</office:font-face-decls>
<office:styles>
<style:default-style style:family="graphic">
<style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:flow-with-text="false"/>
<style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
<style:tab-stops/>
</style:paragraph-properties>
<style:text-properties style:use-window-font-color="true" style:font-name="Liberation Serif" fo:font-size="12pt" fo:language="sv" fo:country="SE" style:letter-kerning="true" style:font-name-asian="SimSun" style:font-size-asian="10.5pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Lucida Sans" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/>
</style:default-style>
<style:default-style style:family="paragraph">
<style:paragraph-properties fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="1.251cm" style:writing-mode="page"/>
<style:text-properties style:use-window-font-color="true" style:font-name="Liberation Serif" fo:font-size="12pt" fo:language="sv" fo:country="SE" style:letter-kerning="true" style:font-name-asian="SimSun" style:font-size-asian="10.5pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Lucida Sans" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2"/>
</style:default-style>
<style:default-style style:family="table">
<style:table-properties table:border-model="collapsing"/>
</style:default-style>
<style:default-style style:family="table-row">
<style:table-row-properties fo:keep-together="auto"/>
</style:default-style>
<style:style style:name="Standard" style:family="paragraph" style:class="text">
<style:text-properties fo:language="en" fo:country="US" style:font-size-asian="10.5pt"/>
</style:style>
<style:style style:name="Heading" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Text_20_body" style:class="text">
<style:paragraph-properties fo:margin-top="0.423cm" fo:margin-bottom="0.212cm" loext:contextual-spacing="false" fo:keep-with-next="always"/>
<style:text-properties style:font-name="Liberation Sans" fo:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" style:font-pitch="variable" fo:font-size="14pt" style:font-name-asian="Microsoft YaHei" style:font-family-asian="&apos;Microsoft YaHei&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-size-asian="14pt" style:font-name-complex="Lucida Sans" style:font-family-complex="&apos;Lucida Sans&apos;" style:font-family-generic-complex="system" style:font-pitch-complex="variable" style:font-size-complex="14pt"/>
</style:style>
<style:style style:name="Text_20_body" style:display-name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text">
<style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.247cm" loext:contextual-spacing="false" fo:line-height="120%"/>
</style:style>
<style:style style:name="List" style:family="paragraph" style:parent-style-name="Text_20_body" style:class="list">
<style:text-properties style:font-size-asian="12pt" style:font-name-complex="Lucida Sans1" style:font-family-complex="&apos;Lucida Sans&apos;" style:font-family-generic-complex="swiss"/>
</style:style>
<style:style style:name="Caption" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
<style:paragraph-properties fo:margin-top="0.212cm" fo:margin-bottom="0.212cm" loext:contextual-spacing="false" text:number-lines="false" text:line-number="0"/>
<style:text-properties fo:font-size="12pt" fo:font-style="italic" style:font-size-asian="12pt" style:font-style-asian="italic" style:font-name-complex="Lucida Sans1" style:font-family-complex="&apos;Lucida Sans&apos;" style:font-family-generic-complex="swiss" style:font-size-complex="12pt" style:font-style-complex="italic"/>
</style:style>
<style:style style:name="Index" style:family="paragraph" style:parent-style-name="Standard" style:class="index">
<style:paragraph-properties text:number-lines="false" text:line-number="0"/>
<style:text-properties style:font-size-asian="12pt" style:font-name-complex="Lucida Sans1" style:font-family-complex="&apos;Lucida Sans&apos;" style:font-family-generic-complex="swiss"/>
</style:style>
<style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="1" style:class="text">
<style:paragraph-properties fo:margin-top="0.423cm" fo:margin-bottom="0.212cm" loext:contextual-spacing="false"/>
<style:text-properties fo:font-size="130%" fo:font-weight="bold" style:font-size-asian="130%" style:font-weight-asian="bold" style:font-size-complex="130%" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Quotations" style:family="paragraph" style:parent-style-name="Standard" style:class="html">
<style:paragraph-properties fo:margin-left="1cm" fo:margin-right="1cm" fo:margin-top="0cm" fo:margin-bottom="0.499cm" loext:contextual-spacing="false" fo:text-indent="0cm" style:auto-text-indent="false"/>
</style:style>
<style:style style:name="Title" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="chapter">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-size="28pt" fo:font-weight="bold" style:font-size-asian="28pt" style:font-weight-asian="bold" style:font-size-complex="28pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Subtitle" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:class="chapter">
<style:paragraph-properties fo:margin-top="0.106cm" fo:margin-bottom="0.212cm" loext:contextual-spacing="false" fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-size="18pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/>
</style:style>
<style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="2" style:class="text">
<style:paragraph-properties fo:margin-top="0.353cm" fo:margin-bottom="0.212cm" loext:contextual-spacing="false"/>
<style:text-properties fo:font-size="115%" fo:font-weight="bold" style:font-size-asian="115%" style:font-weight-asian="bold" style:font-size-complex="115%" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Heading_20_3" style:display-name="Heading 3" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="3" style:class="text">
<style:paragraph-properties fo:margin-top="0.247cm" fo:margin-bottom="0.212cm" loext:contextual-spacing="false"/>
<style:text-properties fo:font-size="101%" fo:font-weight="bold" style:font-size-asian="101%" style:font-weight-asian="bold" style:font-size-complex="101%" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Bullet_20_Symbols" style:display-name="Bullet Symbols" style:family="text">
<style:text-properties style:font-name="OpenSymbol" fo:font-family="OpenSymbol" style:font-charset="x-symbol" style:font-name-asian="OpenSymbol" style:font-family-asian="OpenSymbol" style:font-charset-asian="x-symbol" style:font-name-complex="OpenSymbol" style:font-family-complex="OpenSymbol" style:font-charset-complex="x-symbol"/>
</style:style>
<text:outline-style style:name="Outline">
<text:outline-level-style text:level="1" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="0.762cm" fo:text-indent="-0.762cm" fo:margin-left="0.762cm"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="2" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.016cm" fo:text-indent="-1.016cm" fo:margin-left="1.016cm"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="3" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.27cm" fo:text-indent="-1.27cm" fo:margin-left="1.27cm"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="4" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.524cm" fo:text-indent="-1.524cm" fo:margin-left="1.524cm"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="5" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.778cm" fo:text-indent="-1.778cm" fo:margin-left="1.778cm"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="6" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.032cm" fo:text-indent="-2.032cm" fo:margin-left="2.032cm"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="7" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.286cm" fo:text-indent="-2.286cm" fo:margin-left="2.286cm"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="8" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.54cm" fo:text-indent="-2.54cm" fo:margin-left="2.54cm"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="9" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.794cm" fo:text-indent="-2.794cm" fo:margin-left="2.794cm"/>
</style:list-level-properties>
</text:outline-level-style>
<text:outline-level-style text:level="10" style:num-format="">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="3.048cm" fo:text-indent="-3.048cm" fo:margin-left="3.048cm"/>
</style:list-level-properties>
</text:outline-level-style>
</text:outline-style>
<text:notes-configuration text:note-class="footnote" style:num-format="1" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="document"/>
<text:notes-configuration text:note-class="endnote" style:num-format="i" text:start-value="0"/>
<text:linenumbering-configuration text:number-lines="false" text:offset="0.499cm" style:num-format="1" text:number-position="left" text:increment="5"/>
</office:styles>
<office:automatic-styles>
<style:style style:name="P1" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties officeooo:rsid="001c4c5b" officeooo:paragraph-rsid="001c4c5b"/>
</style:style>
<style:style style:name="P2" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties officeooo:rsid="0027107a" officeooo:paragraph-rsid="0027107a"/>
</style:style>
<style:style style:name="P3" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties fo:font-weight="normal" officeooo:rsid="0027b74d" officeooo:paragraph-rsid="0027b74d" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P4" style:family="paragraph" style:parent-style-name="Text_20_body">
<style:text-properties fo:font-weight="normal" officeooo:rsid="0027107a" officeooo:paragraph-rsid="0027107a" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P5" style:family="paragraph" style:parent-style-name="Heading_20_1">
<style:text-properties officeooo:rsid="001c4c5b" officeooo:paragraph-rsid="001c4c5b"/>
</style:style>
<style:style style:name="P6" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-size="12pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal"/>
</style:style>
<style:style style:name="P7" style:family="paragraph" style:parent-style-name="Heading_20_1">
<style:text-properties officeooo:rsid="001c4c5b" officeooo:paragraph-rsid="001c4c5b"/>
</style:style>
<style:style style:name="P8" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L1">
<style:text-properties officeooo:rsid="0027107a" officeooo:paragraph-rsid="0027107a"/>
</style:style>
<style:style style:name="P9" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L1">
<style:text-properties fo:font-weight="normal" officeooo:rsid="0027107a" officeooo:paragraph-rsid="0027107a" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P10" style:family="paragraph" style:parent-style-name="Text_20_body" style:list-style-name="L1">
<style:text-properties fo:font-weight="normal" officeooo:rsid="0027b74d" officeooo:paragraph-rsid="0027b74d" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="P11" style:family="paragraph">
<style:paragraph-properties fo:text-align="center"/>
<style:text-properties style:text-line-through-style="none" style:text-line-through-type="none" style:font-name="Liberation Sans" fo:font-size="12pt" fo:font-style="normal" style:text-underline-style="none" fo:font-weight="normal"/>
</style:style>
<style:style style:name="T1" style:family="text">
<style:text-properties officeooo:rsid="0023a8b2"/>
</style:style>
<style:style style:name="T2" style:family="text">
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T3" style:family="text">
<style:text-properties fo:font-weight="bold" officeooo:rsid="002ae357" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T4" style:family="text">
<style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
</style:style>
<style:style style:name="T5" style:family="text">
<style:text-properties officeooo:rsid="00290da0"/>
</style:style>
<style:style style:name="T6" style:family="text">
<style:text-properties officeooo:rsid="002ae357"/>
</style:style>
<style:style style:name="T7" style:family="text">
<style:text-properties officeooo:rsid="002c2869"/>
</style:style>
<text:list-style style:name="L1">
<text:list-level-style-bullet text:level="1" text:style-name="Bullet_20_Symbols" text:bullet-char="•">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.27cm" fo:text-indent="-0.635cm" fo:margin-left="1.27cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="2" text:style-name="Bullet_20_Symbols" text:bullet-char="◦">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.905cm" fo:text-indent="-0.635cm" fo:margin-left="1.905cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="3" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.54cm" fo:text-indent="-0.635cm" fo:margin-left="2.54cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="4" text:style-name="Bullet_20_Symbols" text:bullet-char="•">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="3.175cm" fo:text-indent="-0.635cm" fo:margin-left="3.175cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="5" text:style-name="Bullet_20_Symbols" text:bullet-char="◦">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="3.81cm" fo:text-indent="-0.635cm" fo:margin-left="3.81cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="6" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="4.445cm" fo:text-indent="-0.635cm" fo:margin-left="4.445cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="7" text:style-name="Bullet_20_Symbols" text:bullet-char="•">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="5.08cm" fo:text-indent="-0.635cm" fo:margin-left="5.08cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="8" text:style-name="Bullet_20_Symbols" text:bullet-char="◦">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="5.715cm" fo:text-indent="-0.635cm" fo:margin-left="5.715cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="9" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="6.35cm" fo:text-indent="-0.635cm" fo:margin-left="6.35cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="10" text:style-name="Bullet_20_Symbols" text:bullet-char="•">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="6.985cm" fo:text-indent="-0.635cm" fo:margin-left="6.985cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
</text:list-style>
<style:style style:name="gr1" style:family="graphic">
<style:graphic-properties style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="from-top" style:horizontal-pos="from-left" style:horizontal-rel="paragraph" draw:wrap-influence-on-position="once-concurrent" style:flow-with-text="false"/>
</style:style>
<style:page-layout style:name="pm1">
<style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:footnote-max-height="0cm">
<style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
</style:page-layout-properties>
<style:header-style/>
<style:footer-style/>
</style:page-layout>
</office:automatic-styles>
<office:master-styles>
<style:master-page style:name="Standard" style:page-layout-name="pm1"/>
</office:master-styles>
<office:body>
<office:text>
<office:forms form:automatic-focus="false" form:apply-design-mode="false">
<form:form form:name="Form" form:apply-filter="true" form:command-type="table" form:control-implementation="ooo:com.sun.star.form.component.Form" office:target-frame="" xlink:href="" xlink:type="simple">
<form:properties>
<form:property form:property-name="PropertyChangeNotificationEnabled" office:value-type="boolean" office:boolean-value="true"/>
</form:properties>
<form:button form:name="Push Button 1" form:control-implementation="ooo:com.sun.star.form.component.CommandButton" xml:id="control1" form:id="control1" form:label="Generate report" office:target-frame="" xlink:href="" form:image-data="" form:delay-for-repeat="PT0.050000000S" form:image-position="center">
<form:properties>
<form:property form:property-name="DefaultControl" office:value-type="string" office:string-value="com.sun.star.form.control.CommandButton"/>
</form:properties>
<office:event-listeners>
<script:event-listener script:language="ooo:script" script:event-name="form:performaction" xlink:href="vnd.sun.star.script:AcceleratorKeyCheck.__testMenu.testmenus?language=Basic&amp;location=document" xlink:type="simple"/>
</office:event-listeners>
</form:button>
</form:form>
</office:forms>
<text:sequence-decls>
<text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
<text:sequence-decl text:display-outline-level="0" text:name="Table"/>
<text:sequence-decl text:display-outline-level="0" text:name="Text"/>
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
</text:sequence-decls>
<text:h text:style-name="P5" text:outline-level="1">Accelerator key check</text:h>
<text:p text:style-name="P1">This document contains some code to traverse the menus and generate a reports the contents of the main menu items and it&apos;s accelerator keys. If there is a duplicate and the menu item has a sub menu then that means that the user wont be able to reach the second menu item with the same accelerator key. Therefore it will be marked with a <text:span text:style-name="T2">red</text:span> background color. If it has the same key <text:span text:style-name="T6">but don&apos;t have a sub-menu it is marked with a </text:span><text:span text:style-name="T3">yellow</text:span><text:span text:style-name="T6"> background, this is still a problem </text:span>that should be fixed but the <text:span text:style-name="T7">problem</text:span> is just not <text:span text:style-name="T1">quite </text:span>as severe.</text:p>
<text:p text:style-name="P1"><draw:control text:anchor-type="as-char" svg:y="0cm" draw:z-index="0" draw:style-name="gr1" draw:text-style-name="P11" svg:width="3.89cm" svg:height="1.324cm" draw:control="control1"/></text:p>
<text:p text:style-name="P2">If nothing happens when you press Generate report then the macros have probably been blocked for security reasons. To allow the report tobe generated you need change this setting. To do this:</text:p>
<text:list xml:id="list8718540425442089522" text:style-name="L1">
<text:list-item>
<text:p text:style-name="P8">Go to <text:span text:style-name="T2">Tools</text:span><text:span text:style-name="T2">Options</text:span> (or if your&apos;e using Mac <text:span text:style-name="T2">LibreOffice → Preferences...</text:span><text:span text:style-name="T4">)</text:span></text:p>
</text:list-item>
<text:list-item>
<text:p text:style-name="P8"><text:span text:style-name="T4">In the tree list to the left of the dialog navigate to </text:span><text:span text:style-name="T2">LibreOffice → Security</text:span></text:p>
</text:list-item>
<text:list-item>
<text:p text:style-name="P8">Click on the button <text:span text:style-name="T2">Macro security</text:span><text:span text:style-name="T4">...</text:span></text:p>
</text:list-item>
<text:list-item>
<text:p text:style-name="P8"><text:span text:style-name="T4">Set the Security Level to </text:span><text:span text:style-name="T2">Medium</text:span></text:p>
</text:list-item>
<text:list-item>
<text:p text:style-name="P9">Close and reopen this document</text:p>
</text:list-item>
<text:list-item>
<text:p text:style-name="P10">You will get a warning that the document contains macros, click the button <text:span text:style-name="T2">Enable Macros</text:span>. </text:p>
</text:list-item>
</text:list>
<text:p text:style-name="P3">Of course you need to pay attention when this dialog shows up and don&apos;t <text:span text:style-name="T5">blindly </text:span>allow macros to run if you don&apos;t know where it comes from and what it does.</text:p>
</office:text>
</office:body>
</office:document>